diff options
| author | Alexis Bourget <alexis.bourget@gmail.com> | 2020-06-10 23:13:45 +0200 |
|---|---|---|
| committer | Alexis Bourget <alexis.bourget@gmail.com> | 2020-06-11 00:36:55 +0200 |
| commit | 7f3bb398fa90d68c737dd7e00a3813e0620ba472 (patch) | |
| tree | 8bddaea69aa91c9b614b2ce8e7911f8c5f2d2846 /src/libstd/ffi | |
| parent | b03164e6679284b984437fe82092682cf7c984f8 (diff) | |
| download | rust-7f3bb398fa90d68c737dd7e00a3813e0620ba472.tar.gz rust-7f3bb398fa90d68c737dd7e00a3813e0620ba472.zip | |
Add a TryFrom<Vec<u8>> impl that mirror from_vec_with_nul
Diffstat (limited to 'src/libstd/ffi')
| -rw-r--r-- | src/libstd/ffi/c_str.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libstd/ffi/c_str.rs b/src/libstd/ffi/c_str.rs index 6f7dc091897..3a3b51fd353 100644 --- a/src/libstd/ffi/c_str.rs +++ b/src/libstd/ffi/c_str.rs @@ -1,6 +1,7 @@ use crate::ascii; use crate::borrow::{Borrow, Cow}; use crate::cmp::Ordering; +use crate::convert::TryFrom; use crate::error::Error; use crate::fmt::{self, Write}; use crate::io; @@ -853,6 +854,19 @@ impl From<Vec<NonZeroU8>> for CString { } } +#[unstable(feature = "cstring_from_vec_with_nul", issue = "73179")] +impl TryFrom<Vec<u8>> for CString { + type Error = FromBytesWithNulError; + + /// See the document about [`from_vec_with_nul`] for more + /// informations about the behaviour of this method. + /// + /// [`from_vec_with_nul`]: struct.CString.html#method.from_vec_with_nul + fn try_from(value: Vec<u8>) -> Result<Self, Self::Error> { + Self::from_vec_with_nul(value) + } +} + #[stable(feature = "more_box_slice_clone", since = "1.29.0")] impl Clone for Box<CStr> { #[inline] |
