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};