[][src]Struct abi_stable::std_types::string::RString

#[repr(C)]
pub struct RString { /* fields omitted */ }

Ffi-safe equivalent of ::std::string::String

Methods

impl RString[src]

pub fn new() -> Self[src]

Creates a new,empty RString.

pub fn with_capacity(cap: usize) -> Self[src]

Creates a new, empty RString with the capacity to push strings that add up to cap bytes.

pub fn slice<'a, I>(&'a self, i: I) -> RStr<'a> where
    str: Index<I, Output = str>, 
[src]

For slicing into RStrs.

This is an inherent method instead of an implementation of the ::std::ops::Index trait because it does not return a reference.

pub fn as_str(&self) -> &str[src]

Creates a &str with access to all the characters of the RString.

pub fn as_rstr(&self) -> RStr[src]

Creates an RStr<'_> with access to all the characters of the RString.

pub const fn len(&self) -> usize[src]

Returns the current length (in bytes) of the RString.

pub const fn capacity(&self) -> usize[src]

Returns the current capacity (in bytes) of the RString.

pub unsafe fn from_utf8_unchecked<V>(vec: RVec<u8>) -> Self where
    V: Into<RVec<u8>>, 
[src]

pub fn from_utf8<V>(vec: V) -> Result<Self, FromUtf8Error> where
    V: Into<RVec<u8>>, 
[src]

Converts the vec vector of bytes to an RString.

Errors

This will return a Err(FromUtf8Error{..}) if vec was not valid utf-8.

pub fn from_utf16(s: &[u16]) -> Result<Self, FromUtf16Error>[src]

Decodes a utf-16 encoded &[u16] to an RString.

Errors

This will return a Err(::std::string::FromUtf16Error{..}) if vec was not valid utf-8.

Important traits for RVec<u8>
pub fn into_bytes(self) -> RVec<u8>[src]

Cheap conversion of this RString to a RVec<u8>

pub fn into_string(self) -> String[src]

Converts this RString to a String.

Allocation

If this is invoked outside of the dynamic library/binary that created it, it will allocate a new String and move the data into it.

pub fn to_string(&self) -> String[src]

Copies the RString into a String.

pub fn reserve(&mut self, additional: usize)[src]

Reserves àdditional additional capacity for any extra string data. This may reserve more than necessary for the additional capacity.

pub fn shrink_to_fit(&mut self)[src]

Shrinks the capacity of the RString to match its

pub fn reserve_exact(&mut self, additional: usize)[src]

Reserves àdditional additional capacity for any extra string data.

Prefer using reserve for most situations.

pub fn push(&mut self, ch: char)[src]

Appends the ch char at the end of this RString.

pub fn push_str(&mut self, s: &str)[src]

Appends the s &str at the end of this RString.

pub fn pop(&mut self) -> Option<char>[src]

Removes the last character, returns Some(_) if this RString is not empty, otherwise returns None.

pub fn remove(&mut self, idx: usize) -> char[src]

Removes and returns the character starting at the idx byte position,

Panics

Panics if the index is out of bounds or if it is not on a char boundary.

pub fn insert(&mut self, idx: usize, ch: char)[src]

Insert the ch character at the ìnx byte position.

Panics

Panics if the index is out of bounds or if it is not on a char boundary.

pub fn insert_str(&mut self, idx: usize, string: &str)[src]

Insert the s string at the ìnx byte position.

Panics

Panics if the index is out of bounds or if it is not on a char boundary.

pub fn retain<F>(&mut self, pred: F) where
    F: FnMut(char) -> bool
[src]

Retains only the characters that satisfy the pred predicate

This means that a character will be removed if pred(that_character) returns false.

pub fn clear(&mut self)[src]

Turns this into an empty RString,keeping the same allocated buffer.

impl RString[src]

Important traits for Drain<'a>
pub fn drain<I>(&mut self, range: I) -> Drain where
    str: Index<I, Output = str>, 
[src]

Creates an iterator that yields the chars in the range, removing the characters in that range in the process.

Panic

Panics if the start or end of the range are not on a on a char boundary, or if it is out of bounds.

Trait Implementations

impl IntoReprRust for RString[src]

type ReprRust = String

impl SharedStableAbi for RString[src]

type IsNonZeroType = False

Whether this type has a single invalid bit-pattern. Read more

type Kind = __ValueKind

The kind of abi stability of this type,there are 2: Read more

type StaticEquivalent = RString

A version of the type which does not borrow anything, used to create a UTypeId for doing layout checking. Read more

const S_ABI_INFO: &'static AbiInfoWrapper[src]

The layout of the type,derived from Self::LAYOUT and associated types.

impl PartialEq<RString> for RString[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl AsRef<str> for RString[src]

impl Default for RString[src]

Returns an empty RString

impl Clone for RString[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Ord for RString[src]

fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

fn clamp(self, min: Self, max: Self) -> Self[src]

🔬 This is a nightly-only experimental API. (clamp)

Restrict a value to a certain interval. Read more

impl<'a> From<RString> for RCow<'a, str>[src]

impl<'a> From<&'a RString> for RCow<'a, str>[src]

impl<'a> From<&'a str> for RString[src]

impl From<String> for RString[src]

impl<'a> From<Cow<'a, str>> for RString[src]

impl IntoIterator for RString[src]

type Item = char

The type of the elements being iterated over.

type IntoIter = IntoIter

Which kind of iterator are we turning this into?

impl Eq for RString[src]

impl<'a> Into<RString> for RStr<'a>[src]

impl Into<String> for RString[src]

impl<'a> Into<Cow<'a, str>> for RString[src]

impl PartialOrd<RString> for RString[src]

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Deref for RString[src]

type Target = str

The resulting type after dereferencing.

impl Display for RString[src]

impl Debug for RString[src]

impl Hash for RString[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl FromIterator<char> for RString[src]

impl<'a> FromIterator<&'a char> for RString[src]

impl FromStr for RString[src]

type Err = <String as FromStr>::Err

The associated error which can be returned from parsing.

impl Write for RString[src]

fn write_fmt(&mut self, args: Arguments) -> Result<(), Error>
1.0.0
[src]

Glue for usage of the [write!] macro with implementors of this trait. Read more

impl<'de> Deserialize<'de> for RString[src]

impl Serialize for RString[src]

Auto Trait Implementations

impl Send for RString

impl Sync for RString

Blanket Implementations

impl<This> StableAbi for This where
    This: SharedStableAbi<Kind = ValueKind>, 
[src]

impl<T> MakeGetAbiInfo<StableAbi_Bound> for T where
    T: StableAbi
[src]

impl<T> MakeGetAbiInfo<SharedStableAbi_Bound> for T where
    T: SharedStableAbi
[src]

impl<T> MakeGetAbiInfo<UnsafeOpaqueField_Bound> for T[src]

impl<T> GetUTID<True> for T where
    T: 'static, 
[src]

impl<T> GetUTID<False> for T[src]

impl<'a, T> BorrowOwned<'a> for T where
    T: 'a + Clone
[src]

type ROwned = T

type RBorrowed = &'a T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> From<T> for T[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> TypeIdentity for T where
    T: ?Sized
[src]

type Type = T

The same type as Self. Read more

fn into_type_val(self) -> Self::Type where
    Self::Type: Sized
[src]

Converts a value back to the original type.

fn into_type_ref(&self) -> &Self::Type[src]

Converts a reference back to the original type.

fn into_type_mut(&mut self) -> &mut Self::Type[src]

Converts a mutable reference back to the original type.

fn into_type_box(self: Box<Self>) -> Box<Self::Type>[src]

Converts a box back to the original type.

fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>[src]

Converts an Arc back to the original type.

fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>[src]

Converts an Rc back to the original type.

fn from_type_val(this: Self::Type) -> Self where
    Self::Type: Sized
[src]

Converts a value back to the original type.

fn from_type_ref(this: &Self::Type) -> &Self[src]

Converts a reference back to the original type.

fn from_type_mut(this: &mut Self::Type) -> &mut Self[src]

Converts a mutable reference back to the original type.

fn from_type_box(this: Box<Self::Type>) -> Box<Self>[src]

Converts a box back to the original type.

fn from_type_arc(this: Arc<Self::Type>) -> Arc<Self>[src]

Converts an Arc back to the original type.

fn from_type_rc(this: Rc<Self::Type>) -> Rc<Self>[src]

Converts an Rc back to the original type.

impl<T> SelfOps for T where
    T: ?Sized
[src]

const T: PhantomData<fn() -> Self>[src]

Represents Self by using a VariantPhantom, using the syntax Type::T to pass it in methods with _:VariantPhantom<T> parameters. Read more

const T_D: PhantomData<Self>[src]

Represents Self by using a VariantDropPhantom,for specialized cases. Read more

fn assert_ty(self, _other: PhantomData<fn() -> Self>) -> Self[src]

Asserts that other is the same type as self.

fn assert_ty_ref(&self, _other: PhantomData<fn() -> Self>) -> &Self[src]

Asserts that other is the same type as self.

fn assert_ty_mut(&mut self, _other: PhantomData<fn() -> Self>) -> &mut Self[src]

Asserts that other is the same type as self.

fn ty_(&self) -> PhantomData<fn() -> Self>[src]

Equivalent to SelfOps::T,as a method. Read more

fn ty_d(&self) -> PhantomData<Self>[src]

Equivalent to [Self::ty_],for specialized cases. Read more

fn ty_inv(&self) -> PhantomData<fn(Self) -> Self>[src]

Equivalent to [Self::ty_] with an invariant type.

fn ty_inv_ref(&self) -> PhantomData<Cell<&Self>>[src]

Equivalent to [Self::ty_] with an invariant lifetime.

fn eq_id(&self, other: &Self) -> bool[src]

Identity comparison to another value of the same type. Read more

fn piped<F, U>(self, f: F) -> U where
    F: FnOnce(Self) -> U, 
[src]

Emulates the pipeline operator,allowing method syntax in more places. Read more

fn piped_ref<'a, F, U>(&'a self, f: F) -> U where
    F: FnOnce(&'a Self) -> U, 
[src]

The same as piped except that the function takes &Self Useful for functions that take &Self instead of Self. Read more

fn piped_mut<'a, F, U>(&'a mut self, f: F) -> U where
    F: FnOnce(&'a mut Self) -> U, 
[src]

The same as piped except that the function takes &mut Self. Useful for functions that take &mut Self instead of Self. Read more

fn mutated<F>(self, f: F) -> Self where
    F: FnOnce(&mut Self), 
[src]

Mutates self using a closure taking self by mutable reference, passing it along the method chain. Read more

fn observe<F>(self, f: F) -> Self where
    F: FnOnce(&Self), 
[src]

Observes the value of self passing it along unmodified. Useful in a long method chain. Read more

fn into_<T>(self, PhantomData<fn() -> T>) -> T where
    Self: Into<T>, 
[src]

Performs a conversion using Into. Read more

fn as_ref_<T>(&self) -> &T where
    Self: AsRef<T>,
    T: ?Sized
[src]

Performs a reference to reference conversion using AsRef, using the turbofish .as_ref_::<_>() syntax. Read more

fn as_mut_<T>(&mut self) -> &mut T where
    Self: AsMut<T>,
    T: ?Sized
[src]

Performs a mutable reference to mutable reference conversion using AsMut, using the turbofish .as_mut_::<_>() syntax. Read more

fn drop_(self)[src]

Drops self using method notation. Alternative to std::mem::drop. Read more

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The error type returned when the conversion fails.

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> Erased for T