chromium/sql/statement_id.h

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SQL_STATEMENT_ID_H_
#define SQL_STATEMENT_ID_H_

#include <cstddef>

#include "base/component_export.h"

namespace sql {

// Identifies a compiled SQLite statement in a statement cache.
//
// This is a value type with the same performance characteristics as
// std::string_view. Instances are thread-unsafe, but not thread-hostile.
//
// StatementID instances should be constructed by using the SQL_FROM_HERE
// macro, which produces an unique ID based on the source file name and line.
class COMPONENT_EXPORT(SQL) StatementID {};

}  // namespace sql

// Produces a StatementID based on the current line in the source tree.
#define SQL_FROM_HERE

#endif  // SQL_STATEMENT_ID_H_