odra_ir/
lib.rs

1//! Odra intermediate representation (IR) and abstractions.
2//!
3//! This module defines everything Odra procedural macro needs in order to parse,
4//! analyze and generate code for smart contracts.
5//!
6//! This crate takes care of parsing and analyzing code. This process may fail
7//! return [`syn::Error`].
8//!
9//! All the items are based on syn with special variants for Odra `impl` items.
10
11mod attrs;
12mod event_item;
13mod execution_error;
14mod external_contract_item;
15mod instance_item;
16mod mapping;
17mod module_item;
18mod odra_type_item;
19mod utils;
20
21pub use {
22    event_item::EventItem, execution_error::error_enum::ErrorEnumItem,
23    external_contract_item::ExternalContractItem, instance_item::InstanceItem, mapping::MapExpr,
24    odra_type_item::OdraTypeItem
25};
26
27/// Odra module-related abstractions.
28pub mod module {
29    pub use crate::module_item::{
30        constructor::Constructor,
31        delegate::{DelegatedFunction, DelegationBlock, DelegationStatement},
32        impl_item::ImplItem,
33        method::Method,
34        module_impl::ModuleImpl,
35        module_struct::ModuleStruct,
36        ModuleConfiguration, ModuleEvents, ModuleItem
37    };
38}