| // 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 |
| |
| // This file contains shared functions that consume annotations, do various |
| // checks, and return the annotation or some derived value. Annotations should |
| // be defined in support/annotations.h |
| |
| #ifndef THIRD_PARTY_CRUBIT_RS_BINDINGS_FROM_CC_ANNOTATIONS_CONSUMER_H_ |
| #define THIRD_PARTY_CRUBIT_RS_BINDINGS_FROM_CC_ANNOTATIONS_CONSUMER_H_ |
| |
| #include <optional> |
| |
| #include "rs_bindings_from_cc/ir.h" |
| #include "clang/AST/DeclBase.h" |
| |
| namespace crubit { |
| |
| // Returns the `crubit_rust_name` annotation as an unqualified identifier for |
| // the given declaration, if present. |
| std::optional<UnqualifiedIdentifier> CrubitRustName(const clang::Decl& decl); |
| |
| } // namespace crubit |
| |
| #endif // THIRD_PARTY_CRUBIT_RS_BINDINGS_FROM_CC_ANNOTATIONS_CONSUMER_H_ |