1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! ibc-proto library gives the developer access to the Cosmos SDK IBC proto-defined structs.

// Todo: automate the creation of this module setup based on the dots in the filenames.
//  This module setup is necessary because the generated code contains "super::" calls for dependencies.

#![deny(
    warnings,
    missing_docs,
    trivial_casts,
    trivial_numeric_casts,
    unused_import_braces
)]
#![forbid(unsafe_code)]
#![doc(html_root_url = "https://docs.rs/ibc-proto/0.1.0")]

mod cosmos {
    include!("prost/cosmos.rs");
    pub mod query {
        include!("prost/cosmos.query.rs");
    }
}

mod ibc {
    pub mod channel {
        #![allow(missing_docs)]
        include!("prost/ibc.channel.rs");
    }
    pub mod commitment {
        #![allow(missing_docs)]
        include!("prost/ibc.commitment.rs");
    }
    pub mod connection {
        #![allow(missing_docs)]
        include!("prost/ibc.connection.rs");
    }
    pub mod localhost {
        #![allow(missing_docs)]
        include!("prost/ibc.localhost.rs");
    }
    pub mod transfer {
        #![allow(missing_docs)]
        include!("prost/ibc.transfer.rs");
    }
}

mod tendermint {
    pub mod abci {
        #[allow(clippy::large_enum_variant)]
        pub mod types {
            include!("prost/tendermint.abci.types.rs");
        }
    }
    pub mod crypto {
        pub mod merkle {
            include!("prost/tendermint.crypto.merkle.rs");
        }
    }
    pub mod libs {
        pub mod kv {
            include!("prost/tendermint.libs.kv.rs");
        }
    }
}

pub use ibc::*;