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
// Copyright 2020 Parity Technologies
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![cfg_attr(not(feature = "std"), no_std)]

mod hash;
mod uint;

#[cfg(feature = "ethbloom")]
pub use ethbloom::{Bloom, BloomRef, Input as BloomInput};
pub use hash::{BigEndianHash, H128, H160, H256, H264, H32, H512, H520, H64};
pub use uint::{FromDecStrErr, FromStrRadixErr, FromStrRadixErrKind, U128, U256, U512, U64};

pub type Address = H160;
pub type Secret = H256;
pub type Public = H512;
pub type Signature = H520;

/// Conditional compilation depending on whether ethereum-types is built with ethbloom support.
#[cfg(feature = "ethbloom")]
#[macro_export]
macro_rules! if_ethbloom {
    ($($tt:tt)*) => {
        $($tt)*
    };
}

#[cfg(not(feature = "ethbloom"))]
#[macro_export]
#[doc(hidden)]
macro_rules! if_ethbloom {
	($($tt:tt)*) => {};
}