1mod block;
5pub mod client;
6mod error;
7mod ledger;
8mod metadata;
9mod milestone;
10mod node;
11mod protocol_parameters;
12mod raw;
13mod request;
14mod treasury;
15
16pub use self::{
17 block::*, error::Error, ledger::*, metadata::*, milestone::*, node::*, protocol_parameters::*, raw::*, request::*,
18 treasury::*,
19};
20
21pub mod proto {
22 pub use inx::proto::*;
23}
24
25#[macro_export]
26macro_rules! maybe_missing {
27 ($object:ident.$field:ident) => {
28 $object.$field.ok_or(Self::Error::MissingField(stringify!($field)))?
29 };
30}
31
32#[cfg(test)]
33mod test {
34 use super::*;
35
36 #[test]
37 fn macro_missing_field() {
38 let proto = proto::TreasuryOutput {
39 milestone_id: None,
40 amount: 42,
41 };
42 let err = TreasuryOutput::try_from(proto).unwrap_err();
43 assert!(matches!(err, bee_block::InxError::MissingField("milestone_id")));
44 }
45}