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}