Crate cl_aux

source ·
Expand description

Auxiliary elements for collections

CI crates.io Documentation License Rustc

Provides well-defined traits with single methods that enable the achievement of maximum flexibility and freedom in several different operations instead of imposing abstract subsets.

use cl_aux::Length;

struct SomeCustomArray([i32; 2], [i32; 4]);

impl Length for SomeCustomArray {
  fn length(&self) -> usize {
    self.0.length() + self.1.length()
  }
}

fn main() {
  let v = SomeCustomArray([1, 2], [3, 4, 5, 6]);
  assert_eq!(v.length(), 6);
}

Also provides structures for common use-cases.

use cl_aux::ArrayWrapper;

fn main() {
  let _array: [usize; 1] = ArrayWrapper::from_fn(|idx| idx).0;
}

Structs

  • Used for serialization, de-serialization or to construct custom arrays.
  • Immutable array reference wrapper similar to crate::ArrayWrapper.
  • Any mutable item wrapped in this structure is automatically cleaned when dropped.
  • Any mutable item wrapped in this structure is automatically cleaned when initialized and dropped.
  • A wrapper around I: Iterator to workaround trait implementation conflicts
  • A structure that holds one, and only one T.

Enums

  • Groups all possible crate errors

Traits

Type Aliases

  • Alias of core::result::Result<T, Error>