Skip to content
Snippets Groups Projects
Select Git revision
  • master default
  • v0.8.5
  • v0.8.4
  • v0.8.3
  • v0.8.2
  • 0.8.1
  • v0.8.1
  • v0.8.0
8 results

sorted-vec

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Shane Pearman authored
    3943cead
    History

    sorted_vec

    Create and maintain collections of sorted elements.

    Documentation

    let mut v = SortedVec::new();
    assert_eq!(v.insert (5), 0);
    assert_eq!(v.insert (3), 0);
    assert_eq!(v.insert (4), 1);
    assert_eq!(v.insert (4), 1);
    assert_eq!(v.len(), 4);
    v.dedup();
    assert_eq!(v.len(), 3);
    assert_eq!(v.binary_search (&3), Ok (0));
    assert_eq!(*SortedVec::from_unsorted (
      vec![5, -10, 99, -11, 2, 17, 10]),
      vec![-11, -10, 2, 5, 10, 17, 99]);

    Also provides sorted set containers only containing unique elements.

    serde support

    serde de/serialization is an optional feature.

    By default, deserializing an unsorted container is an error.

    To sort on deserialization, tag the field with #[serde(deserialize_with = "SortedVec::deserialize_unsorted")]:

    #[derive(Debug, Eq, Ord, PartialEq, PartialOrd, Deserialize, Serialize)]
    pub struct Foo {
      #[serde(deserialize_with = "SortedVec::deserialize_unsorted")]
      pub v : SortedVec <u64>
    }