/// Tag field to filter log series data by. Although the tag values is an array,
/// we currently only support a single string key value pair to filter logs.
#[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 LogTagFilter(pub std::collections::BTreeMap<String, Vec<String>>);
impl std::iter::FromIterator<(String, Vec<String>)> for LogTagFilter {
    fn from_iter<T>(iter: T) -> Self
    where
        T: std::iter::IntoIterator<Item = (String, Vec<String>)>,
    {
        LogTagFilter(std::iter::FromIterator::from_iter(iter))
    }
}
impl std::convert::From<std::collections::BTreeMap<String, Vec<String>>>
for LogTagFilter {
    #[inline]
    fn from(v: std::collections::BTreeMap<String, Vec<String>>) -> Self {
        LogTagFilter(std::convert::From::from(v))
    }
}
impl std::ops::Deref for LogTagFilter {
    type Target = std::collections::BTreeMap<String, Vec<String>>;
    #[inline]
    fn deref(&self) -> &std::collections::BTreeMap<String, Vec<String>> {
        &self.0
    }
}
impl std::ops::DerefMut for LogTagFilter {
    #[inline]
    fn deref_mut(&mut self) -> &mut std::collections::BTreeMap<String, Vec<String>> {
        &mut self.0
    }
}
impl std::convert::AsRef<std::collections::BTreeMap<String, Vec<String>>>
for LogTagFilter {
    #[inline]
    fn as_ref(&self) -> &std::collections::BTreeMap<String, Vec<String>> {
        &self.0
    }
}
