// DO NOT EDIT: This file is machine-generated by fidlgen
#![warn(clippy::all)]
#![allow(unused_parens, unused_variables, unused_mut, unused_imports, unreachable_code)]

pub mod natural {

    pub use fidl_next_common_test_struct::natural::*;
}

pub mod wire {

    pub use fidl_next_common_test_struct::wire::*;
}

pub mod wire_optional {

    pub use fidl_next_common_test_struct::wire_optional::*;
}

pub mod generic {

    pub use fidl_next_common_test_struct::generic::*;
}

pub use self::natural::*;

pub use fidl_next_common_test_struct::*;

/// Compatibility shims which mimic some API surfaces of the current Rust bindings.
pub mod compat {

    pub use fidl_next_common_test_struct::compat::*;
}
