diff --git a/Cargo.toml b/Cargo.toml index b8e9128..0bce494 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "arrayvec" -version = "0.3.4" +version = "0.3.5" authors = ["bluss"] license = "MIT/Apache-2.0" @@ -13,3 +13,6 @@ keywords = ["stack", "vector", "array", "container", "data-structure"] [dependencies] nodrop = "0.1" + +[dependencies.odds] +version = "0.1" diff --git a/src/lib.rs b/src/lib.rs index d7a55d7..8aa4881 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,4 @@ +extern crate odds; extern crate nodrop; use nodrop::NoDrop; @@ -17,9 +18,8 @@ use std::hash::{Hash, Hasher}; use std::fmt; mod array; -mod misc; pub use array::Array; -pub use misc::RangeArgument; +pub use odds::IndexRange as RangeArgument; use array::Index; diff --git a/src/misc.rs b/src/misc.rs deleted file mode 100644 index 46a1034..0000000 --- a/src/misc.rs +++ /dev/null @@ -1,40 +0,0 @@ -use std::ops::{ - RangeFull, - RangeFrom, - RangeTo, - Range, -}; - -/// **RangeArgument** is implemented by Rust's built-in range types, produced -/// by range syntax like `..`, `a..`, `..b` or `c..d`. -pub trait RangeArgument { - #[inline] - #[doc(hidden)] - /// Start index (inclusive) - fn start(&self) -> Option { None } - #[inline] - #[doc(hidden)] - /// End index (exclusive) - fn end(&self) -> Option { None } -} - - -impl RangeArgument for RangeFull {} - -impl RangeArgument for RangeFrom { - #[inline] - fn start(&self) -> Option { Some(self.start) } -} - -impl RangeArgument for RangeTo { - #[inline] - fn end(&self) -> Option { Some(self.end) } -} - -impl RangeArgument for Range { - #[inline] - fn start(&self) -> Option { Some(self.start) } - #[inline] - fn end(&self) -> Option { Some(self.end) } -} -