pub fn commit(self) -> impl Future<Item=Self, Error=Error> {
        let mut groups = arrayvec::ArrayVec::from(self.groups);
        let group7 = groups.pop().unwrap();
        let group6 = groups.pop().unwrap();
        let group5 = groups.pop().unwrap();
        let group4 = groups.pop().unwrap();
        let group3 = groups.pop().unwrap();
        let group2 = groups.pop().unwrap();
        let group1 = groups.pop().unwrap();
        let group0 = groups.pop().unwrap();
        group0.commit(self.device)
            .and_then(|(device, group)| {
                group1.commit(device)
                    .join(Ok(group))
            })
            .and_then(|(res, group0)| {
                group2.commit(res.0)
                    .join(Ok((group0, res.1)))
            })
            .and_then(|(res, groups)| {
                group3.commit(res.0)
                    .join(Ok((groups.0, groups.1, res.1)))
            })
            .and_then(|(res, groups)| {
                group4.commit(res.0)
                    .join(Ok((groups.0, groups.1, groups.2, res.1)))
            })
            .and_then(|(res, groups)| {
                group5.commit(res.0)
                    .join(Ok((groups.0, groups.1, groups.2, groups.3, res.1)))
            })
            .and_then(|(res, groups)| {
                group6.commit(res.0)
                    .join(Ok((groups.0, groups.1, groups.2, groups.3, groups.4, res.1)))
            })
            .and_then(|(res, groups)| {
                group7.commit(res.0)
                    .join(Ok((groups.0, groups.1, groups.2, groups.3, groups.4, groups.5, res.1)))
            })
            .and_then(|(res, groups)| {
                Ok(DeviceConfig { device: res.0, groups: [groups.0, groups.1, groups.2, groups.3,
                    groups.4, groups.5, groups.6, res.1] })
            })
    }
/// Commits this configuration's changes to the device
Commits this configuration's changes to the device
Commits this configuration ' s changes to the device
pub fn commit(self) -> impl Future<Item=Self, Error=Error> {
        let mut groups = arrayvec::ArrayVec::from(self.groups);
        let group7 = groups.pop().unwrap();
        let group6 = groups.pop().unwrap();
        let group5 = groups.pop().unwrap();
        let group4 = groups.pop().unwrap();
        let group3 = groups.pop().unwrap();
        let group2 = groups.pop().unwrap();
        let group1 = groups.pop().unwrap();
        let group0 = groups.pop().unwrap();
        group0.commit(self.device)
            .and_then(|(device, group)| {
                group1.commit(device)
                    .join(Ok(group))
            })
            .and_then(|(res, group0)| {
                group2.commit(res.0)
                    .join(Ok((group0, res.1)))
            })
            .and_then(|(res, groups)| {
                group3.commit(res.0)
                    .join(Ok((groups.0, groups.1, res.1)))
            })
            .and_then(|(res, groups)| {
                group4.commit(res.0)
                    .join(Ok((groups.0, groups.1, groups.2, res.1)))
            })
            .and_then(|(res, groups)| {
                group5.commit(res.0)
                    .join(Ok((groups.0, groups.1, groups.2, groups.3, res.1)))
            })
            .and_then(|(res, groups)| {
                group6.commit(res.0)
                    .join(Ok((groups.0, groups.1, groups.2, groups.3, groups.4, res.1)))
            })
            .and_then(|(res, groups)| {
                group7.commit(res.0)
                    .join(Ok((groups.0, groups.1, groups.2, groups.3, groups.4, groups.5, res.1)))
            })
            .and_then(|(res, groups)| {
                Ok(DeviceConfig { device: res.0, groups: [groups.0, groups.1, groups.2, groups.3,
                    groups.4, groups.5, groups.6, res.1] })
            })
    }
pub fn commit ( self ) -> impl Future < Item = Self , Error = Error > { let mut groups = arrayvec :: ArrayVec :: from ( self . groups ) ; let group7 = groups . pop ( ) . unwrap ( ) ; let group6 = groups . pop ( ) . unwrap ( ) ; let group5 = groups . pop ( ) . unwrap ( ) ; let group4 = groups . pop ( ) . unwrap ( ) ; let group3 = groups . pop ( ) . unwrap ( ) ; let group2 = groups . pop ( ) . unwrap ( ) ; let group1 = groups . pop ( ) . unwrap ( ) ; let group0 = groups . pop ( ) . unwrap ( ) ; group0 . commit ( self . device ) . and_then ( | ( device , group ) | { group1 . commit ( device ) . join ( Ok ( group ) ) } ) . and_then ( | ( res , group0 ) | { group2 . commit ( res . 0 ) . join ( Ok ( ( group0 , res . 1 ) ) ) } ) . and_then ( | ( res , groups ) | { group3 . commit ( res . 0 ) . join ( Ok ( ( groups . 0 , groups . 1 , res . 1 ) ) ) } ) . and_then ( | ( res , groups ) | { group4 . commit ( res . 0 ) . join ( Ok ( ( groups . 0 , groups . 1 , groups . 2 , res . 1 ) ) ) } ) . and_then ( | ( res , groups ) | { group5 . commit ( res . 0 ) . join ( Ok ( ( groups . 0 , groups . 1 , groups . 2 , groups . 3 , res . 1 ) ) ) } ) . and_then ( | ( res , groups ) | { group6 . commit ( res . 0 ) . join ( Ok ( ( groups . 0 , groups . 1 , groups . 2 , groups . 3 , groups . 4 , res . 1 ) ) ) } ) . and_then ( | ( res , groups ) | { group7 . commit ( res . 0 ) . join ( Ok ( ( groups . 0 , groups . 1 , groups . 2 , groups . 3 , groups . 4 , groups . 5 , res . 1 ) ) ) } ) . and_then ( | ( res , groups ) | { Ok ( DeviceConfig { device : res . 0 , groups : [ groups . 0 , groups . 1 , groups . 2 , groups . 3 , groups . 4 , groups . 5 , groups . 6 , res . 1 ] } ) } ) }
Commits this configuration's changes to the device
Commits this configuration ' s changes to the device
self