ink_primitives/reflect/
mod.rs

1// Copyright (C) Use Ink (UK) Ltd.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! Definitions and utilities for ink! smart contract static reflection.
16//!
17//! # Note
18//!
19//! The ink! smart contract codegen uses these reflections in order to
20//! structure, solidify and manage the generated code.
21//!
22//! However, the definitions in this module might be useful to ink! smart
23//! contract authors as well as they allow to inspect compile time information
24//! about the ink! smart contract at hand.
25
26mod contract;
27mod dispatch;
28mod trait_def;
29
30pub use self::{
31    contract::ContractName,
32    dispatch::{
33        ConstructorOutput,
34        ConstructorOutputValue,
35        ContractConstructorDecoder,
36        ContractMessageDecoder,
37        DecodeDispatch,
38        DispatchError,
39        DispatchableConstructorInfo,
40        DispatchableMessageInfo,
41        ExecuteDispatchable,
42    },
43    trait_def::{
44        TraitDefinitionRegistry,
45        TraitInfo,
46        TraitMessageInfo,
47    },
48};