bulks 0.6.5

Amazing bulks! They are like iterators, but in bulk, and therefore support collection into arrays.
Documentation
use crate::{InplaceBulk, IntoBulk};

/*pub trait IntoInplaceBulk: IntoBulk
{
    type IntoInplaceBulk: InplaceBulk;

    fn into_inplace_bulk(self) -> Self::IntoInplaceBulk;
}
#[cfg(feature = "alloc")]
impl<I> IntoInplaceBulk for I
where
    I: IntoBulk
{
    type IntoInplaceBulk = <I as private::_IntoInplace>::_IntoInplace;

    fn into_inplace_bulk(self) -> Self::IntoInplaceBulk
    {
        use crate::into_inplace_bulk::private::_IntoInplace;

        self._into_inplace()
    }
}

#[cfg(not(feature = "alloc"))]
impl<I> IntoInplaceBulk for I
where
    I: IntoBulk<IntoBulk: InplaceBulk>
{
    type IntoInplaceBulk = <I as private::_IntoInplace>::_IntoInplace;

    fn into_inplace_bulk(self) -> Self::IntoInplaceBulk
    {
        use crate::into_inplace_bulk::private::_IntoInplace;

        self._into_inplace()
    }
}

mod private
{
    use array_trait::same::Same;

    use crate::{InplaceBulk, IntoBulk};

    pub trait _IntoInplace
    {
        type _IntoInplace: InplaceBulk;

        fn _into_inplace(self) -> Self::_IntoInplace;
    }
    #[cfg(feature = "alloc")]
    impl<I> _IntoInplace for I
    where
        I: IntoBulk
    {
        default type _IntoInplace = crate::vec::IntoBulk<I::Item>;

        default fn _into_inplace(self) -> Self::_IntoInplace
        {
            use crate::Bulk;

            self.into_bulk()
                .collect::<alloc::vec::Vec<_>, _>()
                .into_bulk()
                .same()
                .ok()
                .unwrap()
        }
    }
    impl<I> _IntoInplace for I
    where
        I: IntoBulk<IntoBulk: InplaceBulk>
    {
        type _IntoInplace = I::IntoBulk;

        fn _into_inplace(self) -> Self::_IntoInplace
        {
            self.into_bulk()
        }
    }
}

#[cfg(test)]
mod test
{
    use crate::*;

    #[cfg(feature = "alloc")]
    #[test]
    fn it_works()
    {
        let a = [1u8, 2, 3, 4, 5];

        let mut b = a.into_bulk()
            .map(|x| 6 - x)
            .into_inplace_bulk();

        b.swap_inplace(1, 3);

        let c: [_; 5] = b.collect::<Vec<_>, _>()
            .try_into()
            .ok()
            .unwrap();

        assert_eq!(c, [5, 2, 3, 4, 1])
    }
}*/