pub(crate) type FluentId = Cow<'static, str>;
Expand description
Identifier for the Fluent message/attribute corresponding to a diagnostic message.
Aliased Type§
enum FluentId {
Borrowed(&'static str),
Owned(String),
}
Variants§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes
Size for each variant:
Borrowed
: 24 bytesOwned
: 24 bytes
Implementations
Source§impl<B> Cow<'_, B>
impl<B> Cow<'_, B>
Sourcepub const fn is_borrowed(&self) -> bool
🔬This is a nightly-only experimental API. (cow_is_borrowed
)
pub const fn is_borrowed(&self) -> bool
cow_is_borrowed
)Returns true if the data is borrowed, i.e. if to_mut
would require additional work.
§Examples
#![feature(cow_is_borrowed)]
use std::borrow::Cow;
let cow = Cow::Borrowed("moo");
assert!(cow.is_borrowed());
let bull: Cow<'_, str> = Cow::Owned("...moo?".to_string());
assert!(!bull.is_borrowed());
Sourcepub const fn is_owned(&self) -> bool
🔬This is a nightly-only experimental API. (cow_is_borrowed
)
pub const fn is_owned(&self) -> bool
cow_is_borrowed
)Returns true if the data is owned, i.e. if to_mut
would be a no-op.
§Examples
#![feature(cow_is_borrowed)]
use std::borrow::Cow;
let cow: Cow<'_, str> = Cow::Owned("moo".to_string());
assert!(cow.is_owned());
let bull = Cow::Borrowed("...moo?");
assert!(!bull.is_owned());
1.0.0 · Sourcepub fn to_mut(&mut self) -> &mut <B as ToOwned>::Owned
pub fn to_mut(&mut self) -> &mut <B as ToOwned>::Owned
Acquires a mutable reference to the owned form of the data.
Clones the data if it is not already owned.
§Examples
use std::borrow::Cow;
let mut cow = Cow::Borrowed("foo");
cow.to_mut().make_ascii_uppercase();
assert_eq!(
cow,
Cow::Owned(String::from("FOO")) as Cow<'_, str>
);
1.0.0 · Sourcepub fn into_owned(self) -> <B as ToOwned>::Owned
pub fn into_owned(self) -> <B as ToOwned>::Owned
Extracts the owned data.
Clones the data if it is not already owned.
§Examples
Calling into_owned
on a Cow::Borrowed
returns a clone of the borrowed data:
use std::borrow::Cow;
let s = "Hello world!";
let cow = Cow::Borrowed(s);
assert_eq!(
cow.into_owned(),
String::from(s)
);
Calling into_owned
on a Cow::Owned
returns the owned data. The data is moved out of the
Cow
without being cloned.
use std::borrow::Cow;
let s = "Hello world!";
let cow: Cow<'_, str> = Cow::Owned(String::from(s));
assert_eq!(
cow.into_owned(),
String::from(s)
);
Trait Implementations
1.14.0 · Source§impl<'a> AddAssign<&'a str> for Cow<'a, str>
impl<'a> AddAssign<&'a str> for Cow<'a, str>
Source§fn add_assign(&mut self, rhs: &'a str)
fn add_assign(&mut self, rhs: &'a str)
+=
operation. Read moreSource§impl<'a> Arg for Cow<'a, str>
impl<'a> Arg for Cow<'a, str>
Source§fn to_string_lossy(&self) -> Cow<'_, str>
fn to_string_lossy(&self) -> Cow<'_, str>
Cow<'_, str>
.Source§fn as_cow_c_str(&self) -> Result<Cow<'_, CStr>, Errno>
fn as_cow_c_str(&self) -> Result<Cow<'_, CStr>, Errno>
CStr
.Source§impl<T> EncodeAsVarULE<T> for Cow<'_, T>
impl<T> EncodeAsVarULE<T> for Cow<'_, T>
Source§fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
cb
with a piecewise list of byte slices that when concatenated
produce the memory pattern of the corresponding instance of T
. Read moreSource§fn encode_var_ule_len(&self) -> usize
fn encode_var_ule_len(&self) -> usize
VarULE
typeSource§fn encode_var_ule_write(&self, dst: &mut [u8])
fn encode_var_ule_write(&self, dst: &mut [u8])
VarULE
type to the dst
buffer. dst
should
be the size of Self::encode_var_ule_len()
Source§impl<'a, C, T> FromParallelIterator<T> for Cow<'a, C>
impl<'a, C, T> FromParallelIterator<T> for Cow<'a, C>
Collects an arbitrary Cow
collection.
Note, the standard library only has FromIterator
for Cow<'a, str>
and
Cow<'a, [T]>
, because no one thought to add a blanket implementation
before it was stabilized.
Source§fn from_par_iter<I>(par_iter: I) -> Cow<'a, C>where
I: IntoParallelIterator<Item = T>,
fn from_par_iter<I>(par_iter: I) -> Cow<'a, C>where
I: IntoParallelIterator<Item = T>,
par_iter
. Read more1.0.0 · Source§impl<B> Ord for Cow<'_, B>
impl<B> Ord for Cow<'_, B>
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.0.0 · Source§impl<'a, B> PartialOrd for Cow<'a, B>
impl<'a, B> PartialOrd for Cow<'a, B>
Source§impl<'a, T> Writeable for Cow<'a, T>
impl<'a, T> Writeable for Cow<'a, T>
Source§fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
write_to_parts
, and discards any
Part
annotations.Source§fn write_to_parts<W>(&self, sink: &mut W) -> Result<(), Error>where
W: PartsWrite + ?Sized,
fn write_to_parts<W>(&self, sink: &mut W) -> Result<(), Error>where
W: PartsWrite + ?Sized,
Part
annotations to the given sink. Errors from the
sink are bubbled up. The default implementation delegates to write_to
,
and doesn’t produce any Part
annotations.Source§fn writeable_length_hint(&self) -> LengthHint
fn writeable_length_hint(&self) -> LengthHint
Source§impl<'a, T> Yokeable<'a> for Cow<'static, T>
impl<'a, T> Yokeable<'a> for Cow<'static, T>
Source§type Output = Cow<'a, T>
type Output = Cow<'a, T>
Self
with the 'static
replaced with 'a
, i.e. Self<'a>