Struct forth3::fastr::FaStr

source ·
pub struct FaStr {
    ptr: *const u8,
    len_hash: LenHash,
}

Fields§

§ptr: *const u8§len_hash: LenHash

Implementations§

source§

impl FaStr

source

pub unsafe fn new(addr: *const u8, len: usize) -> Self

source

pub fn as_ptr(&self) -> *const u8

source

pub fn as_bytes(&self) -> &[u8]

source

pub fn as_str(&self) -> &str

source

pub fn raw(&self) -> u32

source

pub(crate) unsafe fn copy_in_child(&self) -> Self

Returns a copy of this FaStr pointing to the same data.

§Safety

This aliases the memory location pointed to by this FaStr, and therefore is subject to the same invariants as FaStr::new — the memory area must live as long as the returned FaStr does. In practice this is safe to call when the caller knows that the Dictionary bump arena that self points into will live as long as the dictionary in which the returned FaStr will be stored — such as when the FaStr’s dictionary is kept alive by a parent reference from a child dictionary in which the new FaStr will be used.

Trait Implementations§

source§

impl PartialEq for FaStr

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl Freeze for FaStr

§

impl RefUnwindSafe for FaStr

§

impl !Send for FaStr

§

impl !Sync for FaStr

§

impl Unpin for FaStr

§

impl UnwindSafe for FaStr

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.