elementwise 0.3.2

Elementwise operations implemented for standard Rust containers
Documentation
use std::{
    collections::{VecDeque, LinkedList},
    mem,
    ops::*,
    ptr,
};

#[cfg(feature = "ndarray")]
use ndarray::{Array, Dimension};

new_trait!(BitOr.bitor => ElementwiseBitOr.elementwise_bitor);
impl_identity!(bool, usize, u8, u16, u32, u64, isize, i8, i16, i32, i64;
               BitOr.bitor => ElementwiseBitOr.elementwise_bitor);
#[cfg(feature = "ndarray")] impl_ndarray!(BitOr.bitor => ElementwiseBitOr.elementwise_bitor);

new_trait!(BitAnd.bitand => ElementwiseBitAnd.elementwise_bitand);
impl_identity!(bool, usize, u8, u16, u32, u64, isize, i8, i16, i32, i64;
               BitAnd.bitand => ElementwiseBitAnd.elementwise_bitand);
#[cfg(feature = "ndarray")] impl_ndarray!(BitAnd.bitand => ElementwiseBitAnd.elementwise_bitand);

new_trait!(BitXor.bitxor => ElementwiseBitXor.elementwise_bitxor);
impl_identity!(bool, usize, u8, u16, u32, u64, isize, i8, i16, i32, i64;
               BitXor.bitxor => ElementwiseBitXor.elementwise_bitxor);
#[cfg(feature = "ndarray")] impl_ndarray!(BitXor.bitxor => ElementwiseBitXor.elementwise_bitxor);

new_trait_unary!(Not.not => ElementwiseNot.elementwise_not);
impl_identity_unary!(bool, usize, u8, u16, u32, u64, isize, i8, i16, i32, i64;
                     Not.not => ElementwiseNot.elementwise_not);
#[cfg(feature = "ndarray")] impl_ndarray_unary!(Not.not => ElementwiseNot.elementwise_not);