Skip to content

Commit dbd3304

Browse files
tormolThomas Bahn
authored and
Thomas Bahn
committed
Implement Default, From<&mut[Ascii]> and As{Ref,Mut}<[Ascii]> for AsciiStr
1 parent e39560a commit dbd3304

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/ascii_str.rs

+20-1
Original file line numberDiff line numberDiff line change
@@ -191,18 +191,37 @@ impl AsRef<[u8]> for AsciiStr {
191191
self.as_bytes()
192192
}
193193
}
194-
195194
impl AsRef<str> for AsciiStr {
196195
fn as_ref(&self) -> &str {
197196
self.as_str()
198197
}
199198
}
199+
impl AsRef<[Ascii]> for AsciiStr {
200+
fn as_ref(&self) -> &[Ascii] {
201+
&self.slice
202+
}
203+
}
204+
impl AsMut<[Ascii]> for AsciiStr {
205+
fn as_mut(&mut self) -> &mut[Ascii] {
206+
&mut self.slice
207+
}
208+
}
200209

210+
impl Default for &'static AsciiStr {
211+
fn default() -> &'static AsciiStr {
212+
unsafe{ "".into_ascii_unchecked() }
213+
}
214+
}
201215
impl<'a> From<&'a[Ascii]> for &'a AsciiStr {
202216
fn from(slice: &[Ascii]) -> &AsciiStr {
203217
unsafe{ mem::transmute(slice) }
204218
}
205219
}
220+
impl<'a> From<&'a mut [Ascii]> for &'a mut AsciiStr {
221+
fn from(slice: &mut[Ascii]) -> &mut AsciiStr {
222+
unsafe{ mem::transmute(slice) }
223+
}
224+
}
206225
impl From<Box<[Ascii]>> for Box<AsciiStr> {
207226
fn from(owned: Box<[Ascii]>) -> Box<AsciiStr> {
208227
unsafe{ mem::transmute(owned) }

0 commit comments

Comments
 (0)