#[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 WorkbookChannelVariableMap(
    pub std::collections::BTreeMap<super::ChannelVariableName, super::ChannelVariable>,
);
impl std::iter::FromIterator<(super::ChannelVariableName, super::ChannelVariable)>
for WorkbookChannelVariableMap {
    fn from_iter<T>(iter: T) -> Self
    where
        T: std::iter::IntoIterator<
            Item = (super::ChannelVariableName, super::ChannelVariable),
        >,
    {
        WorkbookChannelVariableMap(std::iter::FromIterator::from_iter(iter))
    }
}
impl std::convert::From<
    std::collections::BTreeMap<super::ChannelVariableName, super::ChannelVariable>,
> for WorkbookChannelVariableMap {
    #[inline]
    fn from(
        v: std::collections::BTreeMap<super::ChannelVariableName, super::ChannelVariable>,
    ) -> Self {
        WorkbookChannelVariableMap(std::convert::From::from(v))
    }
}
impl std::ops::Deref for WorkbookChannelVariableMap {
    type Target = std::collections::BTreeMap<
        super::ChannelVariableName,
        super::ChannelVariable,
    >;
    #[inline]
    fn deref(
        &self,
    ) -> &std::collections::BTreeMap<
        super::ChannelVariableName,
        super::ChannelVariable,
    > {
        &self.0
    }
}
impl std::ops::DerefMut for WorkbookChannelVariableMap {
    #[inline]
    fn deref_mut(
        &mut self,
    ) -> &mut std::collections::BTreeMap<
        super::ChannelVariableName,
        super::ChannelVariable,
    > {
        &mut self.0
    }
}
impl std::convert::AsRef<
    std::collections::BTreeMap<super::ChannelVariableName, super::ChannelVariable>,
> for WorkbookChannelVariableMap {
    #[inline]
    fn as_ref(
        &self,
    ) -> &std::collections::BTreeMap<
        super::ChannelVariableName,
        super::ChannelVariable,
    > {
        &self.0
    }
}
