/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Interface Declarations *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ namespace mlir { /// This interface provides hooks to interact with the AsmPrinter and AsmParser /// classes. class OpAsmAttrInterface; } // namespace mlir namespace mlir { /// This interface provides hooks to interact with the AsmPrinter and AsmParser /// classes. namespace detail { struct OpAsmAttrInterfaceInterfaceTraits { struct Concept { /// The methods defined by the interface. ::mlir::OpAsmAliasResult (*getAlias)(const Concept *impl, ::mlir::Attribute , ::llvm::raw_ostream&); }; template class Model : public Concept { public: using Interface = ::mlir::OpAsmAttrInterface; Model() : Concept{getAlias} {} static inline ::mlir::OpAsmAliasResult getAlias(const Concept *impl, ::mlir::Attribute tablegen_opaque_val, ::llvm::raw_ostream& os); }; template class FallbackModel : public Concept { public: using Interface = ::mlir::OpAsmAttrInterface; FallbackModel() : Concept{getAlias} {} static inline ::mlir::OpAsmAliasResult getAlias(const Concept *impl, ::mlir::Attribute tablegen_opaque_val, ::llvm::raw_ostream& os); }; template class ExternalModel : public FallbackModel { public: using ConcreteEntity = ConcreteAttr; ::mlir::OpAsmAliasResult getAlias(::mlir::Attribute tablegen_opaque_val, ::llvm::raw_ostream&os) const; }; }; template struct OpAsmAttrInterfaceTrait; } // namespace detail class OpAsmAttrInterface : public ::mlir::AttributeInterface { public: using ::mlir::AttributeInterface::AttributeInterface; template struct Trait : public detail::OpAsmAttrInterfaceTrait {}; /// Get a name to use when generating an alias for this attribute. ::mlir::OpAsmAliasResult getAlias(::llvm::raw_ostream& os) const; }; } // namespace mlir namespace mlir::detail { template struct OpAsmAttrInterfaceTrait : public ::mlir::AttributeInterface::Trait { /// Get a name to use when generating an alias for this attribute. ::mlir::OpAsmAliasResult getAlias(::llvm::raw_ostream& os) const { return ::mlir::OpAsmAliasResult::NoAlias; } }; } // namespace mlir::detail namespace mlir { template ::mlir::OpAsmAliasResult detail::OpAsmAttrInterfaceInterfaceTraits::Model::getAlias(const Concept *impl, ::mlir::Attribute tablegen_opaque_val, ::llvm::raw_ostream& os) { return (::llvm::cast(tablegen_opaque_val)).getAlias(os); } template ::mlir::OpAsmAliasResult detail::OpAsmAttrInterfaceInterfaceTraits::FallbackModel::getAlias(const Concept *impl, ::mlir::Attribute tablegen_opaque_val, ::llvm::raw_ostream& os) { return static_cast(impl)->getAlias(tablegen_opaque_val, os); } template ::mlir::OpAsmAliasResult detail::OpAsmAttrInterfaceInterfaceTraits::ExternalModel::getAlias(::mlir::Attribute tablegen_opaque_val, ::llvm::raw_ostream&os) const { return ::mlir::OpAsmAliasResult::NoAlias; } } // namespace mlir