Add .as_slice(), .as_mut_slice(), .as_str()

Vec and String now have these, so we do too to follow convention.
This commit is contained in:
bluss
2016-02-29 23:52:58 +01:00
parent cb2c2708c3
commit 8d30739409
2 changed files with 15 additions and 0 deletions
+5
View File
@@ -152,6 +152,11 @@ impl<A: Array<Item=u8>> ArrayString<A> {
debug_assert!(length <= self.capacity()); debug_assert!(length <= self.capacity());
self.len = Index::from(length); self.len = Index::from(length);
} }
/// Return a string slice of the whole `ArrayString`.
pub fn as_str(&self) -> &str {
self
}
} }
impl<A: Array<Item=u8>> Deref for ArrayString<A> { impl<A: Array<Item=u8>> Deref for ArrayString<A> {
+10
View File
@@ -395,6 +395,16 @@ impl<A: Array> ArrayVec<A> {
self.clear(); self.clear();
mem::forget(self); mem::forget(self);
} }
/// Return a slice containing all elements of the vector.
pub fn as_slice(&self) -> &[A::Item] {
self
}
/// Return a mutable slice containing all elements of the vector.
pub fn as_mut_slice(&mut self) -> &mut [A::Item] {
self
}
} }
impl<A: Array> Deref for ArrayVec<A> { impl<A: Array> Deref for ArrayVec<A> {