#[derive(
    Debug,
    Clone,
    conjure_object::serde::Deserialize,
    conjure_object::serde::Serialize,
    PartialEq,
    Eq,
    PartialOrd,
    Ord,
    Hash,
    Default
)]
#[serde(crate = "conjure_object::serde", transparent)]
pub struct ComparisonChannelVariableMap(
    pub std::collections::BTreeMap<super::VariableName, super::ChannelVariable>,
);
impl std::iter::FromIterator<(super::VariableName, super::ChannelVariable)>
for ComparisonChannelVariableMap {
    fn from_iter<T>(iter: T) -> Self
    where
        T: std::iter::IntoIterator<Item = (super::VariableName, super::ChannelVariable)>,
    {
        ComparisonChannelVariableMap(std::iter::FromIterator::from_iter(iter))
    }
}
impl std::convert::From<
    std::collections::BTreeMap<super::VariableName, super::ChannelVariable>,
> for ComparisonChannelVariableMap {
    #[inline]
    fn from(
        v: std::collections::BTreeMap<super::VariableName, super::ChannelVariable>,
    ) -> Self {
        ComparisonChannelVariableMap(std::convert::From::from(v))
    }
}
impl std::ops::Deref for ComparisonChannelVariableMap {
    type Target = std::collections::BTreeMap<
        super::VariableName,
        super::ChannelVariable,
    >;
    #[inline]
    fn deref(
        &self,
    ) -> &std::collections::BTreeMap<super::VariableName, super::ChannelVariable> {
        &self.0
    }
}
impl std::ops::DerefMut for ComparisonChannelVariableMap {
    #[inline]
    fn deref_mut(
        &mut self,
    ) -> &mut std::collections::BTreeMap<super::VariableName, super::ChannelVariable> {
        &mut self.0
    }
}
impl std::convert::AsRef<
    std::collections::BTreeMap<super::VariableName, super::ChannelVariable>,
> for ComparisonChannelVariableMap {
    #[inline]
    fn as_ref(
        &self,
    ) -> &std::collections::BTreeMap<super::VariableName, super::ChannelVariable> {
        &self.0
    }
}
