Skip to content

Commit ea0613f

Browse files
committed
Implement Default, From<&mut[Ascii]> and As{Ref,Mut}<[Ascii]> for AsciiStr
1 parent 935cf96 commit ea0613f

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/ascii_str.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,18 +207,37 @@ impl AsRef<[u8]> for AsciiStr {
207207
self.as_bytes()
208208
}
209209
}
210-
211210
impl AsRef<str> for AsciiStr {
212211
fn as_ref(&self) -> &str {
213212
self.as_str()
214213
}
215214
}
215+
impl AsRef<[Ascii]> for AsciiStr {
216+
fn as_ref(&self) -> &[Ascii] {
217+
&self.slice
218+
}
219+
}
220+
impl AsMut<[Ascii]> for AsciiStr {
221+
fn as_mut(&mut self) -> &mut[Ascii] {
222+
&mut self.slice
223+
}
224+
}
216225

226+
impl Default for &'static AsciiStr {
227+
fn default() -> &'static AsciiStr {
228+
unsafe{ "".into_ascii_unchecked() }
229+
}
230+
}
217231
impl<'a> From<&'a[Ascii]> for &'a AsciiStr {
218232
fn from(slice: &[Ascii]) -> &AsciiStr {
219233
unsafe{ mem::transmute(slice) }
220234
}
221235
}
236+
impl<'a> From<&'a mut [Ascii]> for &'a mut AsciiStr {
237+
fn from(slice: &mut[Ascii]) -> &mut AsciiStr {
238+
unsafe{ mem::transmute(slice) }
239+
}
240+
}
222241
impl From<Box<[Ascii]>> for Box<AsciiStr> {
223242
fn from(owned: Box<[Ascii]>) -> Box<AsciiStr> {
224243
unsafe{ mem::transmute(owned) }

0 commit comments

Comments
 (0)