//! Configuration for a channel manager (and, therefore, channels) //! //! # Semver note //! //! Most types in this module are re-exported by `arti-client`. use tor_config::impl_standard_builder; use tor_config::{ConfigBuildError, PaddingLevel}; use derive_builder::Builder; use serde::{Deserialize, Serialize}; /// Channel configuration /// /// This type is immutable once constructed. To build one, use /// [`ChannelConfigBuilder`], or deserialize it from a string. #[derive(Debug, Clone, Builder, Eq, PartialEq)] #[builder(build_fn(error = "ConfigBuildError"))] #[builder(derive(Debug, Serialize, Deserialize))] pub struct ChannelConfig { /// Control of channel padding #[builder(default)] pub(crate) padding: PaddingLevel, } impl_standard_builder! { ChannelConfig } #[cfg(feature = "testing")] impl ChannelConfig { /// The padding level (accessor for testing) pub fn padding(&self) -> PaddingLevel { self.padding } } #[cfg(test)] mod test { // @@ begin test lint list maintained by maint/add_warning @@ #![allow(clippy::bool_assert_comparison)] #![allow(clippy::clone_on_copy)] #![allow(clippy::dbg_macro)] #![allow(clippy::mixed_attributes_style)] #![allow(clippy::print_stderr)] #![allow(clippy::print_stdout)] #![allow(clippy::single_char_pattern)] #![allow(clippy::unwrap_used)] #![allow(clippy::unchecked_duration_subtraction)] #![allow(clippy::useless_vec)] #![allow(clippy::needless_pass_by_value)] //! use super::*; #[test] fn channel_config() { let config = ChannelConfig::default(); assert_eq!(PaddingLevel::Normal, config.padding); } }