ibc_core/
lib.rs

1//! Re-exports data structures and implementations of all the IBC core (TAO) modules/components.
2#![no_std]
3#![forbid(unsafe_code)]
4#![cfg_attr(not(test), deny(clippy::unwrap_used))]
5#![cfg_attr(not(test), deny(clippy::disallowed_methods, clippy::disallowed_types,))]
6#![deny(
7    warnings,
8    trivial_numeric_casts,
9    unused_import_braces,
10    unused_qualifications,
11    rust_2018_idioms
12)]
13
14/// Re-exports IBC handler entrypoints from the `ibc-core-handler` crate for
15/// added convenience.
16pub mod entrypoint {
17    #[doc(inline)]
18    pub use ibc_core_handler::entrypoint::*;
19}
20
21/// Re-exports IBC primitive types from the `ibc-primitives` crate
22pub mod primitives {
23    #[doc(inline)]
24    pub use ibc_primitives::*;
25}
26
27/// Re-exports ICS-02 implementation from the `ibc-core-client` crate
28pub mod client {
29    #[doc(inline)]
30    pub use ibc_core_client::*;
31}
32
33/// Re-exports ICS-03 implementation from the `ibc-core-connection` crate
34pub mod connection {
35    #[doc(inline)]
36    pub use ibc_core_connection::*;
37}
38
39/// Re-exports ICS-04 implementation from the `ibc-core-channel` crate
40pub mod channel {
41    #[doc(inline)]
42    pub use ibc_core_channel::*;
43}
44
45/// Re-exports ICS-23 data structures from the `ibc-core-commitment-types` crate
46pub mod commitment_types {
47    #[doc(inline)]
48    pub use ibc_core_commitment_types::*;
49}
50
51/// Re-exports ICS-24 implementation from the `ibc-core-host` crate
52pub mod host {
53    #[doc(inline)]
54    pub use ibc_core_host::*;
55}
56
57/// Re-exports ICS-25 implementation from the `ibc-core-handler` crate
58pub mod handler {
59    #[doc(inline)]
60    pub use ibc_core_handler::*;
61}
62
63/// Re-exports ICS-26 implementation from the `ibc-core-router` crate
64pub mod router {
65    #[doc(inline)]
66    pub use ibc_core_router::*;
67}
68
69/// Re-exports convenient derive macros from `ibc-derive` crate.
70pub mod derive {
71    /// To specify the generic arguments for `ClientState`, use the following
72    /// attributes:
73    ///
74    /// - `#[validation(<YourClientValidationContext>)]`
75    /// - `#[execution(<YourClientExecutionContext>)]`
76    ///
77    /// The argument to the `validation` or `execution` attributes may contain
78    /// lifetimes or generic types, and even that types might be bounded by
79    /// traits. For instance:
80    ///
81    /// - `#[validation(Context<S>)]`
82    /// - `#[validation(Context<'a, S>)]`
83    /// - `#[validation(Context<'a, S: Clone>)]`
84    pub use ibc_derive::IbcCoreClientState as ClientState;
85    /// A derive macro for implementing the
86    /// [`ConsensusState`](crate::client::context::consensus_state::ConsensusState) trait for
87    /// enums. Enums with variants that also implement the
88    /// [`ConsensusState`](crate::client::context::consensus_state::ConsensusState) trait can
89    /// leverage this macro for automatic implementation.
90    pub use ibc_derive::IbcCoreConsensusState as ConsensusState;
91}