Struct chalk_solve::display::WriterState
source · pub struct WriterState<I, DB: ?Sized, P = DB>where
DB: RustIrDatabase<I>,
P: Borrow<DB>,
I: Interner,{ /* private fields */ }Expand description
Writer state which persists across multiple writes.
Currently, this means keeping track of what IDs have been given what names, including deduplication information.
This data is stored using interior mutability - clones will point to the same underlying data.
Uses a separate type, P, for the database stored inside to account for
Arc or wrapping other storage mediums.
Implementations
sourceimpl<I, DB: ?Sized, P> WriterState<I, DB, P>where
DB: RustIrDatabase<I>,
P: Borrow<DB>,
I: Interner,
impl<I, DB: ?Sized, P> WriterState<I, DB, P>where
DB: RustIrDatabase<I>,
P: Borrow<DB>,
I: Interner,
Trait Implementations
sourceimpl<I, DB: ?Sized, P> Clone for WriterState<I, DB, P>where
DB: RustIrDatabase<I>,
P: Borrow<DB> + Clone,
I: Interner,
impl<I, DB: ?Sized, P> Clone for WriterState<I, DB, P>where
DB: RustIrDatabase<I>,
P: Borrow<DB> + Clone,
I: Interner,
Auto Trait Implementations
impl<I, DB: ?Sized, P> RefUnwindSafe for WriterState<I, DB, P>where
DB: RefUnwindSafe,
P: RefUnwindSafe,
impl<I, DB: ?Sized, P> Send for WriterState<I, DB, P>where
DB: Send,
P: Send,
<I as Interner>::DefId: Send,
<I as Interner>::InternedAdtId: Send,
impl<I, DB: ?Sized, P> Sync for WriterState<I, DB, P>where
DB: Sync,
P: Sync,
<I as Interner>::DefId: Send,
<I as Interner>::InternedAdtId: Send,
impl<I, DB: ?Sized, P> Unpin for WriterState<I, DB, P>where
DB: Unpin,
P: Unpin,
impl<I, DB: ?Sized, P> UnwindSafe for WriterState<I, DB, P>where
DB: UnwindSafe,
P: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Cast for T
impl<T> Cast for T
sourcefn cast<U>(self, interner: <U as HasInterner>::Interner) -> Uwhere
Self: CastTo<U>,
U: HasInterner,
fn cast<U>(self, interner: <U as HasInterner>::Interner) -> Uwhere
Self: CastTo<U>,
U: HasInterner,
Cast a value to type
U using CastTo.