blob: 971d6545d29cd463a131434aaa9b6e2d231faa71 [file] [log] [blame]
// Part of the Crubit project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#ifndef CRUBIT_RS_BINDINGS_FROM_CC_TEST_GOLDEN_NAMESPACE_H_
#define CRUBIT_RS_BINDINGS_FROM_CC_TEST_GOLDEN_NAMESPACE_H_
#pragma clang lifetime_elision
namespace test_namespace_bindings {
struct S final {
int i;
};
// Free comment inside namespace
int f(S s);
inline void inline_function() {}
namespace inner {
void i();
} // namespace inner
} // namespace test_namespace_bindings
test_namespace_bindings::S identity(test_namespace_bindings::S s);
namespace test_namespace_bindings_reopened {
void x();
namespace inner {
struct S final {};
} // namespace inner
} // namespace test_namespace_bindings_reopened
namespace test_namespace_bindings_reopened {
void y();
namespace inner {
void z(S s);
} // namespace inner
} // namespace test_namespace_bindings_reopened
namespace test_namespace_bindings_inline {
inline namespace inner {
struct StructInInlineNamespace final {};
} // namespace inner
} // namespace test_namespace_bindings_inline
void useStructInInlineNamespaceWithFullQualifier(
test_namespace_bindings_inline::inner::StructInInlineNamespace s);
void useStructInInlineNamespaceSkipInlineQualifier(
test_namespace_bindings_inline::StructInInlineNamespace s);
namespace impl { // `impl` is a reserved keyword in Rust
inline void foo() {}
} // namespace impl
#endif // CRUBIT_RS_BINDINGS_FROM_CC_TEST_GOLDEN_NAMESPACE_H_