// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_INTERNALS_LOGGING_SCOPE_H_ #define COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_INTERNALS_LOGGING_SCOPE_H_ namespace autofill { class LogBuffer; /////////////// Logging Scopes ///////////// // Generator for source code related to logging scopes. Pass a template T which // takes a single parameter, the name of the scope the log messages are related // to. #define AUTOFILL_LOGGING_SCOPE_TEMPLATES(T) … // Define a bunch of logging scopes: kContext, kParsing, ... #define AUTOFILL_TEMPLATE … enum class LoggingScope { … }; #undef AUTOFILL_TEMPLATE // Returns the enum value of |scope| as a string (without the leading k). const char* LoggingScopeToString(LoggingScope scope); LogBuffer& operator<<(LogBuffer& buf, LoggingScope scope); } // namespace autofill #endif // COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_INTERNALS_LOGGING_SCOPE_H_