att 0.2.1

Bluetooth Attribute Protocol Server
Documentation
use std::iter::{Extend, FromIterator};

use super::*;

impl FromIterator<(Handle, Uuid)> for FindInformationResponse {
    fn from_iter<T: IntoIterator<Item = (Handle, Uuid)>>(iter: T) -> Self {
        Self {
            values: AttributeDataList(iter.into_iter().collect()),
        }
    }
}

impl Extend<(Handle, Uuid)> for FindInformationResponse {
    fn extend<T: IntoIterator<Item = (Handle, Uuid)>>(&mut self, iter: T) {
        self.values.0.extend(iter)
    }
}

impl FromIterator<(Handle, Handle)> for FindByTypeValueResponse {
    fn from_iter<T: IntoIterator<Item = (Handle, Handle)>>(iter: T) -> Self {
        Self {
            values: HandlesInformationList(iter.into_iter().collect()),
        }
    }
}

impl Extend<(Handle, Handle)> for FindByTypeValueResponse {
    fn extend<T: IntoIterator<Item = (Handle, Handle)>>(&mut self, iter: T) {
        self.values.0.extend(iter)
    }
}

impl FromIterator<(Handle, Box<[u8]>)> for ReadByTypeResponse {
    fn from_iter<T: IntoIterator<Item = (Handle, Box<[u8]>)>>(iter: T) -> Self {
        Self {
            values: AttributeDataList(iter.into_iter().collect()),
        }
    }
}

impl Extend<(Handle, Box<[u8]>)> for ReadByTypeResponse {
    fn extend<T: IntoIterator<Item = (Handle, Box<[u8]>)>>(&mut self, iter: T) {
        self.values.0.extend(iter)
    }
}

impl FromIterator<(Handle, Handle, Box<[u8]>)> for ReadByGroupTypeResponse {
    fn from_iter<T: IntoIterator<Item = (Handle, Handle, Box<[u8]>)>>(iter: T) -> Self {
        Self {
            values: AttributeDataList(iter.into_iter().collect()),
        }
    }
}

impl Extend<(Handle, Handle, Box<[u8]>)> for ReadByGroupTypeResponse {
    fn extend<T: IntoIterator<Item = (Handle, Handle, Box<[u8]>)>>(&mut self, iter: T) {
        self.values.0.extend(iter)
    }
}

impl IntoIterator for ReadMultipleRequest {
    type Item = Handle;
    type IntoIter = std::vec::IntoIter<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        self.set_of_handles.0.into_iter()
    }
}

impl<'a> IntoIterator for &'a ReadMultipleRequest {
    type Item = &'a Handle;
    type IntoIter = std::slice::Iter<'a, Handle>;
    fn into_iter(self) -> Self::IntoIter {
        self.set_of_handles.into_iter()
    }
}