use super::*;
ns_use_this_variety! {
pub use [crate::doc::netstatus::rs]::?::{RouterStatus};
}
#[derive(Clone, Debug, Deftly)]
#[derive_deftly(Constructor, NetdocEncodableFields, NetdocParseableFields)]
#[allow(clippy::exhaustive_structs)]
pub struct Preamble {
#[deftly(constructor)]
pub consensus_methods: ns_type!( NotPresent, NotPresent, ConsensusMethods ),
#[deftly(constructor)]
pub consensus_method: ns_type!( (u32,), (u32,), NotPresent ),
#[deftly(constructor)]
pub published: ns_type!( NotPresent, NotPresent, (Iso8601TimeSp,) ),
#[deftly(constructor)]
#[deftly(netdoc(flatten))]
pub lifetime: Lifetime,
pub voting_delay: Option<(u32, u32)>,
#[deftly(constructor)]
#[deftly(netdoc(single_arg))]
pub client_versions: Vec<String>,
#[deftly(constructor)]
#[deftly(netdoc(single_arg))]
pub server_versions: Vec<String>,
#[deftly(constructor)]
#[deftly(netdoc(with = "relay_flags::ParserEncoder::<relay_flags::NoImplicitRepr>"))]
pub known_flags: DocRelayFlags,
#[deftly(constructor)]
#[deftly(netdoc(flatten))]
pub proto_statuses: Arc<ProtoStatuses>,
#[deftly(constructor)]
pub params: NetParams<i32>,
pub shared_rand_previous_value: Option<SharedRandStatus>,
pub shared_rand_current_value: Option<SharedRandStatus>,
#[doc(hidden)]
#[deftly(netdoc(skip))]
pub __non_exhaustive: (),
}