Skip to main content

Text

Struct Text 

Source
pub struct Text { /* private fields */ }
Expand description

One text cell. Cheap to clone; every clone is the same place.

Implementations§

Source§

impl Text

Source

pub fn id(&self) -> TextId

Source

pub fn load(&self) -> Result<String>

A copy of the current text.

Source

pub fn len(&self) -> Result<usize>

Source

pub fn is_empty(&self) -> Result<bool>

Source

pub fn store(&self, text: &str) -> Result<()>

Replace the text.

Source

pub fn append(&self, text: &str) -> Result<usize>

Append to the text, atomically with respect to every other writer; refused whole, never cut, when the result would not fit.

Source

pub fn release(self) -> Result<()>

Give the cell back; this and every other handle to it go stale.

Source

pub fn version(&self) -> Result<u32>

The seqlock sequence at rest, the thing Self::wait_changed waits on. Take it before Self::load and the wait misses nothing.

Source

pub fn wait_changed(&self, since: u32) -> Result<u32>

Park until the text has been written since since, then return the sequence now. A released cell wakes every waiter with Error::StaleText. Blocking; an async runtime wraps it.

Source

pub fn wait_changed_until( &self, since: u32, interrupt: &AtomicBool, ) -> Result<Option<u32>>

Self::wait_changed, but a second word can end it. Ok(None) means the interrupt arrived, not that time ran out — nothing here measures time. The canceller sets interrupt, then calls Self::wake_waiters.

Source

pub fn wake_waiters(&self) -> Result<()>

Wake everyone parked on this text cell without appending to it. Only useful after the word the waiter also watches has been set.

Trait Implementations§

Source§

impl Clone for Text

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Text

§

impl !UnwindSafe for Text

§

impl Freeze for Text

§

impl Send for Text

§

impl Sync for Text

§

impl Unpin for Text

§

impl UnsafeUnpin for Text

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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.