pub(crate) struct LispBuffer(GcHeap<LispBufferInner>);
Expand description
A lisp handle to a buffer. This is a just a reference type and does not give
access to the contents until it is locked and a OpenBuffer
is returned.
Tuple Fields§
§0: GcHeap<LispBufferInner>
Implementations§
Source§impl LispBuffer
impl LispBuffer
pub(crate) fn create(name: String, block: &Block<true>) -> &LispBuffer
pub(crate) unsafe fn new(name: String, _: &Block<true>) -> LispBuffer
pub(in core) fn lock( &self, ) -> Result<OpenBuffer<'_>>
Source§impl<'new> LispBuffer
impl<'new> LispBuffer
Methods from Deref<Target = <GcHeap<LispBufferInner> as std_ops_Deref>::Target>§
Trait Implementations§
Source§impl Markable for LispBuffer
impl Markable for LispBuffer
Source§impl PartialEq<LispBuffer> for CurrentBuffer<'_>
impl PartialEq<LispBuffer> for CurrentBuffer<'_>
Source§impl PartialEq<LispBuffer> for OpenBuffer<'_>
impl PartialEq<LispBuffer> for OpenBuffer<'_>
Source§impl PartialEq<OpenBuffer<'_>> for LispBuffer
impl PartialEq<OpenBuffer<'_>> for LispBuffer
Source§impl PartialEq for LispBuffer
impl PartialEq for LispBuffer
Source§impl RootedDeref for LispBuffer
impl RootedDeref for LispBuffer
type Target = RootedLispBuffer
fn rooted_deref(rooted: &Rt<Self>) -> &Self::Target
fn rooted_derefmut(rooted: &mut Rt<Self>) -> &mut Self::Target
Source§impl TaggedPtr for &LispBuffer
impl TaggedPtr for &LispBuffer
Source§const TAG: Tag = Tag::Buffer
const TAG: Tag = Tag::Buffer
Tag value. This is only applicable to base values. Use Int for sum
types.
Source§type Ptr = LispBuffer
type Ptr = LispBuffer
The type of object being pointed to. This will be different for all
implementors.
Source§unsafe fn from_obj_ptr(ptr: *const u8) -> Self
unsafe fn from_obj_ptr(ptr: *const u8) -> Self
Given an untyped pointer, reinterpret to self. Read more
Source§unsafe fn tag_ptr(ptr: *const Self::Ptr) -> Gc<Self>
unsafe fn tag_ptr(ptr: *const Self::Ptr) -> Gc<Self>
Given a pointer to
Ptr
return a Tagged pointer. Read moreSource§fn untag(val: Gc<Self>) -> Self
fn untag(val: Gc<Self>) -> Self
Remove the tag from the
Gc<T>
and return the inner type. If it is
base type then it will only have a single possible value and can be
untagged without checks, but sum types need to create all values
they can hold. We use tagged base types to let us reinterpret bits
without actually modify them. Read moreSource§impl<'old, 'new> WithLifetime<'new> for &'old LispBuffer
impl<'old, 'new> WithLifetime<'new> for &'old LispBuffer
type Out = &'new LispBuffer
unsafe fn with_lifetime(self) -> Self::Out
Source§impl<'ob> From<&'ob LispBuffer> for Gc<ObjectType<'ob>>
impl<'ob> From<&'ob LispBuffer> for Gc<ObjectType<'ob>>
Source§fn from(x: &'ob LispBuffer) -> Self
fn from(x: &'ob LispBuffer) -> Self
Converts to this type from the input type.
Source§impl Debug for LispBuffer
impl Debug for LispBuffer
Source§fn fmt(&self, f: &mut std_fmt_Formatter<'_>) -> std_fmt_Result
fn fmt(&self, f: &mut std_fmt_Formatter<'_>) -> std_fmt_Result
Formats the value using the given formatter. Read more
Source§impl Display for LispBuffer
impl Display for LispBuffer
Source§fn fmt(&self, f: &mut std_fmt_Formatter<'_>) -> std_fmt_Result
fn fmt(&self, f: &mut std_fmt_Formatter<'_>) -> std_fmt_Result
Formats the value using the given formatter. Read more
Source§impl Deref for LispBuffer
impl Deref for LispBuffer
impl Eq for LispBuffer
impl GcPtr for &LispBuffer
impl StructuralPartialEq for LispBuffer
Auto Trait Implementations§
impl !Freeze for LispBuffer
impl !RefUnwindSafe for LispBuffer
impl Send for LispBuffer
impl Sync for LispBuffer
impl Unpin for LispBuffer
impl UnwindSafe for LispBuffer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.