pub(crate) struct Gc<T> {
ptr: *const u8,
_data: PhantomData<T>,
}
Expand description
This type has two meanings, it is both a value that is tagged as well as something that is managed by the GC. It is intended to be pointer sized, and have a lifetime tied to the context which manages garbage collections. A Gc can be reinterpreted as any type that shares the same tag.
Fields§
§ptr: *const u8
§_data: PhantomData<T>
Implementations§
Source§impl<'ob> Gc<ObjectType<'ob>>
impl<'ob> Gc<ObjectType<'ob>>
Source§impl<T> Gc<T>
impl<T> Gc<T>
const fn new(ptr: *const u8) -> Self
unsafe fn from_ptr<U>(ptr: *const U, tag: Tag) -> Self
fn untag_ptr(self) -> (*const u8, Tag)
fn get_tag(self) -> Tag
pub(crate) fn into_raw(self) -> RawObj
pub(in core) fn into_ptr( self, ) -> *const u8
pub(crate) unsafe fn from_raw(raw: RawObj) -> Self
pub(crate) unsafe fn from_raw_ptr(raw: *mut u8) -> Self
pub(crate) fn ptr_eq<U>(self, other: Gc<U>) -> bool
pub(crate) fn as_obj(&self) -> Gc<ObjectType<'_>>
Source§impl<'ob, T> Gc<T>where
T: 'ob,
impl<'ob, T> Gc<T>where
T: 'ob,
pub(crate) fn as_obj_copy(self) -> Gc<ObjectType<'ob>>
Source§impl<T> Gc<T>
impl<T> Gc<T>
Sourcepub(crate) fn untag(self) -> T
pub(crate) fn untag(self) -> T
A non-trait version of Untag::untag_erased. This is useful when we don’t want to import the trait all over the place. The only time we need to import the trait is in generic code.
Source§impl<'ob> Gc<NumberType<'ob>>
impl<'ob> Gc<NumberType<'ob>>
pub fn int(self) -> Option<i64>
pub fn int_or<E>(self, err: E) -> Result<i64, E>
pub fn int_or_else<E, F: FnOnce() -> E>(self, or_else: F) -> Result<i64, E>
pub fn expect_int(self, msg: &str) -> i64
pub fn unwrap_int(self) -> i64
pub fn unwrap_or_int(self, default: i64) -> i64
pub fn unwrap_or_else_int<F: FnOnce() -> i64>(self, or_else: F) -> i64
pub fn is_int(&self) -> bool
pub fn is_not_int(&self) -> bool
pub fn and_int(self, and: Self) -> Self
pub fn or_int(self, or: Self) -> Self
pub fn float(self) -> Option<&'ob LispFloat>
pub fn float_or<E>(self, err: E) -> Result<&'ob LispFloat, E>
pub fn float_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob LispFloat, E>
pub fn expect_float(self, msg: &str) -> &'ob LispFloat
pub fn unwrap_float(self) -> &'ob LispFloat
pub fn unwrap_or_float(self, default: &'ob LispFloat) -> &'ob LispFloat
pub fn unwrap_or_else_float<F: FnOnce() -> &'ob LispFloat>( self, or_else: F, ) -> &'ob LispFloat
pub fn is_float(&self) -> bool
pub fn is_not_float(&self) -> bool
pub fn and_float(self, and: Self) -> Self
pub fn or_float(self, or: Self) -> Self
pub fn big(self) -> Option<&'ob LispBigInt>
pub fn big_or<E>(self, err: E) -> Result<&'ob LispBigInt, E>
pub fn big_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob LispBigInt, E>
pub fn expect_big(self, msg: &str) -> &'ob LispBigInt
pub fn unwrap_big(self) -> &'ob LispBigInt
pub fn unwrap_or_big(self, default: &'ob LispBigInt) -> &'ob LispBigInt
pub fn unwrap_or_else_big<F: FnOnce() -> &'ob LispBigInt>( self, or_else: F, ) -> &'ob LispBigInt
pub fn is_big(&self) -> bool
pub fn is_not_big(&self) -> bool
pub fn and_big(self, and: Self) -> Self
pub fn or_big(self, or: Self) -> Self
Source§impl<'ob> Gc<ListType<'ob>>
impl<'ob> Gc<ListType<'ob>>
pub fn is_nil(&self) -> bool
pub fn is_not_nil(&self) -> bool
pub fn and_nil(self, and: Self) -> Self
pub fn or_nil(self, or: Self) -> Self
pub fn cons(self) -> Option<&'ob Cons>
pub fn cons_or<E>(self, err: E) -> Result<&'ob Cons, E>
pub fn cons_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob Cons, E>
pub fn expect_cons(self, msg: &str) -> &'ob Cons
pub fn unwrap_cons(self) -> &'ob Cons
pub fn unwrap_or_cons(self, default: &'ob Cons) -> &'ob Cons
pub fn unwrap_or_else_cons<F: FnOnce() -> &'ob Cons>( self, or_else: F, ) -> &'ob Cons
pub fn is_cons(&self) -> bool
pub fn is_not_cons(&self) -> bool
pub fn and_cons(self, and: Self) -> Self
pub fn or_cons(self, or: Self) -> Self
Source§impl<'ob> Gc<FunctionType<'ob>>
impl<'ob> Gc<FunctionType<'ob>>
pub fn byte_fn(self) -> Option<&'ob ByteFn>
pub fn byte_fn_or<E>(self, err: E) -> Result<&'ob ByteFn, E>
pub fn byte_fn_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob ByteFn, E>
pub fn expect_byte_fn(self, msg: &str) -> &'ob ByteFn
pub fn unwrap_byte_fn(self) -> &'ob ByteFn
pub fn unwrap_or_byte_fn(self, default: &'ob ByteFn) -> &'ob ByteFn
pub fn unwrap_or_else_byte_fn<F: FnOnce() -> &'ob ByteFn>( self, or_else: F, ) -> &'ob ByteFn
pub fn is_byte_fn(&self) -> bool
pub fn is_not_byte_fn(&self) -> bool
pub fn and_byte_fn(self, and: Self) -> Self
pub fn or_byte_fn(self, or: Self) -> Self
pub fn subr_fn(self) -> Option<&'static SubrFn>
pub fn subr_fn_or<E>(self, err: E) -> Result<&'static SubrFn, E>
pub fn subr_fn_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'static SubrFn, E>
pub fn expect_subr_fn(self, msg: &str) -> &'static SubrFn
pub fn unwrap_subr_fn(self) -> &'static SubrFn
pub fn unwrap_or_subr_fn(self, default: &'static SubrFn) -> &'static SubrFn
pub fn unwrap_or_else_subr_fn<F: FnOnce() -> &'static SubrFn>( self, or_else: F, ) -> &'static SubrFn
pub fn is_subr_fn(&self) -> bool
pub fn is_not_subr_fn(&self) -> bool
pub fn and_subr_fn(self, and: Self) -> Self
pub fn or_subr_fn(self, or: Self) -> Self
pub fn cons(self) -> Option<&'ob Cons>
pub fn cons_or<E>(self, err: E) -> Result<&'ob Cons, E>
pub fn cons_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob Cons, E>
pub fn expect_cons(self, msg: &str) -> &'ob Cons
pub fn unwrap_cons(self) -> &'ob Cons
pub fn unwrap_or_cons(self, default: &'ob Cons) -> &'ob Cons
pub fn unwrap_or_else_cons<F: FnOnce() -> &'ob Cons>( self, or_else: F, ) -> &'ob Cons
pub fn is_cons(&self) -> bool
pub fn is_not_cons(&self) -> bool
pub fn and_cons(self, and: Self) -> Self
pub fn or_cons(self, or: Self) -> Self
pub fn symbol(self) -> Option<Symbol<'ob>>
pub fn symbol_or<E>(self, err: E) -> Result<Symbol<'ob>, E>
pub fn symbol_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<Symbol<'ob>, E>
pub fn expect_symbol(self, msg: &str) -> Symbol<'ob>
pub fn unwrap_symbol(self) -> Symbol<'ob>
pub fn unwrap_or_symbol(self, default: Symbol<'ob>) -> Symbol<'ob>
pub fn unwrap_or_else_symbol<F: FnOnce() -> Symbol<'ob>>( self, or_else: F, ) -> Symbol<'ob>
pub fn is_symbol(&self) -> bool
pub fn is_not_symbol(&self) -> bool
pub fn and_symbol(self, and: Self) -> Self
pub fn or_symbol(self, or: Self) -> Self
Source§impl<'ob> Gc<ObjectType<'ob>>
impl<'ob> Gc<ObjectType<'ob>>
pub fn int(self) -> Option<i64>
pub fn int_or<E>(self, err: E) -> Result<i64, E>
pub fn int_or_else<E, F: FnOnce() -> E>(self, or_else: F) -> Result<i64, E>
pub fn expect_int(self, msg: &str) -> i64
pub fn unwrap_int(self) -> i64
pub fn unwrap_or_int(self, default: i64) -> i64
pub fn unwrap_or_else_int<F: FnOnce() -> i64>(self, or_else: F) -> i64
pub fn is_int(&self) -> bool
pub fn is_not_int(&self) -> bool
pub fn and_int(self, and: Self) -> Self
pub fn or_int(self, or: Self) -> Self
pub fn float(self) -> Option<&'ob LispFloat>
pub fn float_or<E>(self, err: E) -> Result<&'ob LispFloat, E>
pub fn float_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob LispFloat, E>
pub fn expect_float(self, msg: &str) -> &'ob LispFloat
pub fn unwrap_float(self) -> &'ob LispFloat
pub fn unwrap_or_float(self, default: &'ob LispFloat) -> &'ob LispFloat
pub fn unwrap_or_else_float<F: FnOnce() -> &'ob LispFloat>( self, or_else: F, ) -> &'ob LispFloat
pub fn is_float(&self) -> bool
pub fn is_not_float(&self) -> bool
pub fn and_float(self, and: Self) -> Self
pub fn or_float(self, or: Self) -> Self
pub fn symbol(self) -> Option<Symbol<'ob>>
pub fn symbol_or<E>(self, err: E) -> Result<Symbol<'ob>, E>
pub fn symbol_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<Symbol<'ob>, E>
pub fn expect_symbol(self, msg: &str) -> Symbol<'ob>
pub fn unwrap_symbol(self) -> Symbol<'ob>
pub fn unwrap_or_symbol(self, default: Symbol<'ob>) -> Symbol<'ob>
pub fn unwrap_or_else_symbol<F: FnOnce() -> Symbol<'ob>>( self, or_else: F, ) -> Symbol<'ob>
pub fn is_symbol(&self) -> bool
pub fn is_not_symbol(&self) -> bool
pub fn and_symbol(self, and: Self) -> Self
pub fn or_symbol(self, or: Self) -> Self
pub fn cons(self) -> Option<&'ob Cons>
pub fn cons_or<E>(self, err: E) -> Result<&'ob Cons, E>
pub fn cons_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob Cons, E>
pub fn expect_cons(self, msg: &str) -> &'ob Cons
pub fn unwrap_cons(self) -> &'ob Cons
pub fn unwrap_or_cons(self, default: &'ob Cons) -> &'ob Cons
pub fn unwrap_or_else_cons<F: FnOnce() -> &'ob Cons>( self, or_else: F, ) -> &'ob Cons
pub fn is_cons(&self) -> bool
pub fn is_not_cons(&self) -> bool
pub fn and_cons(self, and: Self) -> Self
pub fn or_cons(self, or: Self) -> Self
pub fn vec(self) -> Option<&'ob LispVec>
pub fn vec_or<E>(self, err: E) -> Result<&'ob LispVec, E>
pub fn vec_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob LispVec, E>
pub fn expect_vec(self, msg: &str) -> &'ob LispVec
pub fn unwrap_vec(self) -> &'ob LispVec
pub fn unwrap_or_vec(self, default: &'ob LispVec) -> &'ob LispVec
pub fn unwrap_or_else_vec<F: FnOnce() -> &'ob LispVec>( self, or_else: F, ) -> &'ob LispVec
pub fn is_vec(&self) -> bool
pub fn is_not_vec(&self) -> bool
pub fn and_vec(self, and: Self) -> Self
pub fn or_vec(self, or: Self) -> Self
pub fn record(self) -> Option<&'ob Record>
pub fn record_or<E>(self, err: E) -> Result<&'ob Record, E>
pub fn record_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob Record, E>
pub fn expect_record(self, msg: &str) -> &'ob Record
pub fn unwrap_record(self) -> &'ob Record
pub fn unwrap_or_record(self, default: &'ob Record) -> &'ob Record
pub fn unwrap_or_else_record<F: FnOnce() -> &'ob Record>( self, or_else: F, ) -> &'ob Record
pub fn is_record(&self) -> bool
pub fn is_not_record(&self) -> bool
pub fn and_record(self, and: Self) -> Self
pub fn or_record(self, or: Self) -> Self
pub fn hash_table(self) -> Option<&'ob LispHashTable>
pub fn hash_table_or<E>(self, err: E) -> Result<&'ob LispHashTable, E>
pub fn hash_table_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob LispHashTable, E>
pub fn expect_hash_table(self, msg: &str) -> &'ob LispHashTable
pub fn unwrap_hash_table(self) -> &'ob LispHashTable
pub fn unwrap_or_hash_table( self, default: &'ob LispHashTable, ) -> &'ob LispHashTable
pub fn unwrap_or_else_hash_table<F: FnOnce() -> &'ob LispHashTable>( self, or_else: F, ) -> &'ob LispHashTable
pub fn is_hash_table(&self) -> bool
pub fn is_not_hash_table(&self) -> bool
pub fn and_hash_table(self, and: Self) -> Self
pub fn or_hash_table(self, or: Self) -> Self
pub fn string(self) -> Option<&'ob LispString>
pub fn string_or<E>(self, err: E) -> Result<&'ob LispString, E>
pub fn string_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob LispString, E>
pub fn expect_string(self, msg: &str) -> &'ob LispString
pub fn unwrap_string(self) -> &'ob LispString
pub fn unwrap_or_string(self, default: &'ob LispString) -> &'ob LispString
pub fn unwrap_or_else_string<F: FnOnce() -> &'ob LispString>( self, or_else: F, ) -> &'ob LispString
pub fn is_string(&self) -> bool
pub fn is_not_string(&self) -> bool
pub fn and_string(self, and: Self) -> Self
pub fn or_string(self, or: Self) -> Self
pub fn byte_string(self) -> Option<&'ob ByteString>
pub fn byte_string_or<E>(self, err: E) -> Result<&'ob ByteString, E>
pub fn byte_string_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob ByteString, E>
pub fn expect_byte_string(self, msg: &str) -> &'ob ByteString
pub fn unwrap_byte_string(self) -> &'ob ByteString
pub fn unwrap_or_byte_string(self, default: &'ob ByteString) -> &'ob ByteString
pub fn unwrap_or_else_byte_string<F: FnOnce() -> &'ob ByteString>( self, or_else: F, ) -> &'ob ByteString
pub fn is_byte_string(&self) -> bool
pub fn is_not_byte_string(&self) -> bool
pub fn and_byte_string(self, and: Self) -> Self
pub fn or_byte_string(self, or: Self) -> Self
pub fn byte_fn(self) -> Option<&'ob ByteFn>
pub fn byte_fn_or<E>(self, err: E) -> Result<&'ob ByteFn, E>
pub fn byte_fn_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob ByteFn, E>
pub fn expect_byte_fn(self, msg: &str) -> &'ob ByteFn
pub fn unwrap_byte_fn(self) -> &'ob ByteFn
pub fn unwrap_or_byte_fn(self, default: &'ob ByteFn) -> &'ob ByteFn
pub fn unwrap_or_else_byte_fn<F: FnOnce() -> &'ob ByteFn>( self, or_else: F, ) -> &'ob ByteFn
pub fn is_byte_fn(&self) -> bool
pub fn is_not_byte_fn(&self) -> bool
pub fn and_byte_fn(self, and: Self) -> Self
pub fn or_byte_fn(self, or: Self) -> Self
pub fn subr_fn(self) -> Option<&'static SubrFn>
pub fn subr_fn_or<E>(self, err: E) -> Result<&'static SubrFn, E>
pub fn subr_fn_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'static SubrFn, E>
pub fn expect_subr_fn(self, msg: &str) -> &'static SubrFn
pub fn unwrap_subr_fn(self) -> &'static SubrFn
pub fn unwrap_or_subr_fn(self, default: &'static SubrFn) -> &'static SubrFn
pub fn unwrap_or_else_subr_fn<F: FnOnce() -> &'static SubrFn>( self, or_else: F, ) -> &'static SubrFn
pub fn is_subr_fn(&self) -> bool
pub fn is_not_subr_fn(&self) -> bool
pub fn and_subr_fn(self, and: Self) -> Self
pub fn or_subr_fn(self, or: Self) -> Self
pub fn buffer(self) -> Option<&'static LispBuffer>
pub fn buffer_or<E>(self, err: E) -> Result<&'static LispBuffer, E>
pub fn buffer_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'static LispBuffer, E>
pub fn expect_buffer(self, msg: &str) -> &'static LispBuffer
pub fn unwrap_buffer(self) -> &'static LispBuffer
pub fn unwrap_or_buffer( self, default: &'static LispBuffer, ) -> &'static LispBuffer
pub fn unwrap_or_else_buffer<F: FnOnce() -> &'static LispBuffer>( self, or_else: F, ) -> &'static LispBuffer
pub fn is_buffer(&self) -> bool
pub fn is_not_buffer(&self) -> bool
pub fn and_buffer(self, and: Self) -> Self
pub fn or_buffer(self, or: Self) -> Self
pub fn char_table(self) -> Option<&'static CharTable>
pub fn char_table_or<E>(self, err: E) -> Result<&'static CharTable, E>
pub fn char_table_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'static CharTable, E>
pub fn expect_char_table(self, msg: &str) -> &'static CharTable
pub fn unwrap_char_table(self) -> &'static CharTable
pub fn unwrap_or_char_table( self, default: &'static CharTable, ) -> &'static CharTable
pub fn unwrap_or_else_char_table<F: FnOnce() -> &'static CharTable>( self, or_else: F, ) -> &'static CharTable
pub fn is_char_table(&self) -> bool
pub fn is_not_char_table(&self) -> bool
pub fn and_char_table(self, and: Self) -> Self
pub fn or_char_table(self, or: Self) -> Self
pub fn big_int(self) -> Option<&'ob LispBigInt>
pub fn big_int_or<E>(self, err: E) -> Result<&'ob LispBigInt, E>
pub fn big_int_or_else<E, F: FnOnce() -> E>( self, or_else: F, ) -> Result<&'ob LispBigInt, E>
pub fn expect_big_int(self, msg: &str) -> &'ob LispBigInt
pub fn unwrap_big_int(self) -> &'ob LispBigInt
pub fn unwrap_or_big_int(self, default: &'ob LispBigInt) -> &'ob LispBigInt
pub fn unwrap_or_else_big_int<F: FnOnce() -> &'ob LispBigInt>( self, or_else: F, ) -> &'ob LispBigInt
pub fn is_big_int(&self) -> bool
pub fn is_not_big_int(&self) -> bool
pub fn and_big_int(self, and: Self) -> Self
pub fn or_big_int(self, or: Self) -> Self
Source§impl<'ob> Gc<ObjectType<'ob>>
impl<'ob> Gc<ObjectType<'ob>>
pub(crate) fn try_from_option<T, E>( value: Gc<ObjectType<'ob>>, ) -> Result<Option<T>, E>
pub(crate) fn is_nil(self) -> bool
Source§impl<'ob> Gc<ObjectType<'ob>>
impl<'ob> Gc<ObjectType<'ob>>
Sourcepub(crate) fn as_cons_pair(
self,
) -> Result<(Symbol<'ob>, ObjectType<'ob>), TypeError>
pub(crate) fn as_cons_pair( self, ) -> Result<(Symbol<'ob>, ObjectType<'ob>), TypeError>
Convience method to easily match against cons cells that are the start of a list of values.
Source§impl<'ob> Gc<FunctionType<'ob>>
impl<'ob> Gc<FunctionType<'ob>>
Sourcepub(crate) fn as_cons_pair(
self,
) -> Result<(Symbol<'ob>, FunctionType<'ob>), TypeError>
pub(crate) fn as_cons_pair( self, ) -> Result<(Symbol<'ob>, FunctionType<'ob>), TypeError>
Convience method to easily match against cons cells that are the start of a list of values.
Source§impl Gc<NumberType<'_>>
impl Gc<NumberType<'_>>
pub(crate) fn val(self) -> NumberValue
Methods from Deref<Target = Cons>§
pub(crate) fn elements(&self) -> ElemIter<'_> ⓘ
pub(crate) fn conses(&self) -> ConsIter<'_> ⓘ
pub(crate) fn car(&self) -> Gc<ObjectType<'_>>
pub(crate) fn cdr(&self) -> Gc<ObjectType<'_>>
pub(crate) fn cadr(&self) -> Option<Gc<ObjectType<'_>>>
pub(crate) fn cddr(&self) -> Option<Gc<ObjectType<'_>>>
pub(crate) fn set_car(&self, new_car: Gc<ObjectType<'_>>) -> Result<()>
pub(crate) fn set_cdr(&self, new_cdr: Gc<ObjectType<'_>>) -> Result<()>
pub(super) fn display_walk( &self, f: &mut Formatter<'_>, seen: &mut HashSet<*const u8>, ) -> Result
fn is_backref(&self, seen: &mut HashSet<*const u8>) -> bool
Trait Implementations§
Source§impl Default for Gc<ObjectType<'_>>
impl Default for Gc<ObjectType<'_>>
Source§impl<'ob> From<&'ob ByteString> for Gc<ObjectType<'ob>>
impl<'ob> From<&'ob ByteString> for Gc<ObjectType<'ob>>
Source§fn from(x: &'ob ByteString) -> Self
fn from(x: &'ob ByteString) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<&LispBigInt> for Gc<NumberType<'ob>>
impl<'ob> From<&LispBigInt> for Gc<NumberType<'ob>>
Source§fn from(x: &LispBigInt) -> Self
fn from(x: &LispBigInt) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<&'ob LispBigInt> for Gc<ObjectType<'ob>>
impl<'ob> From<&'ob LispBigInt> for Gc<ObjectType<'ob>>
Source§fn from(x: &'ob LispBigInt) -> Self
fn from(x: &'ob LispBigInt) -> Self
Converts to this type from the input type.
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<'ob> From<&'ob LispHashTable> for Gc<ObjectType<'ob>>
impl<'ob> From<&'ob LispHashTable> for Gc<ObjectType<'ob>>
Source§fn from(x: &'ob LispHashTable) -> Self
fn from(x: &'ob LispHashTable) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<&'ob LispString> for Gc<ObjectType<'ob>>
impl<'ob> From<&'ob LispString> for Gc<ObjectType<'ob>>
Source§fn from(x: &'ob LispString) -> Self
fn from(x: &'ob LispString) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<FunctionType<'ob>> for Gc<ObjectType<'ob>>
impl<'ob> From<FunctionType<'ob>> for Gc<ObjectType<'ob>>
Source§fn from(x: FunctionType<'ob>) -> Self
fn from(x: FunctionType<'ob>) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<Gc<&'ob ByteString>> for Gc<ObjectType<'ob>>
impl<'ob> From<Gc<&'ob ByteString>> for Gc<ObjectType<'ob>>
Source§fn from(x: Gc<&'ob ByteString>) -> Self
fn from(x: Gc<&'ob ByteString>) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<Gc<&LispBigInt>> for Gc<NumberType<'ob>>
impl<'ob> From<Gc<&LispBigInt>> for Gc<NumberType<'ob>>
Source§fn from(x: Gc<&LispBigInt>) -> Self
fn from(x: Gc<&LispBigInt>) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<Gc<&'ob LispBigInt>> for Gc<ObjectType<'ob>>
impl<'ob> From<Gc<&'ob LispBigInt>> for Gc<ObjectType<'ob>>
Source§fn from(x: Gc<&'ob LispBigInt>) -> Self
fn from(x: Gc<&'ob LispBigInt>) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<Gc<&'ob LispBuffer>> for Gc<ObjectType<'ob>>
impl<'ob> From<Gc<&'ob LispBuffer>> for Gc<ObjectType<'ob>>
Source§fn from(x: Gc<&'ob LispBuffer>) -> Self
fn from(x: Gc<&'ob LispBuffer>) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<Gc<&'ob LispHashTable>> for Gc<ObjectType<'ob>>
impl<'ob> From<Gc<&'ob LispHashTable>> for Gc<ObjectType<'ob>>
Source§fn from(x: Gc<&'ob LispHashTable>) -> Self
fn from(x: Gc<&'ob LispHashTable>) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<Gc<&'ob LispString>> for Gc<ObjectType<'ob>>
impl<'ob> From<Gc<&'ob LispString>> for Gc<ObjectType<'ob>>
Source§fn from(x: Gc<&'ob LispString>) -> Self
fn from(x: Gc<&'ob LispString>) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<Gc<FunctionType<'ob>>> for Gc<ObjectType<'ob>>
impl<'ob> From<Gc<FunctionType<'ob>>> for Gc<ObjectType<'ob>>
Source§fn from(x: Gc<FunctionType<'ob>>) -> Self
fn from(x: Gc<FunctionType<'ob>>) -> Self
Converts to this type from the input type.
Source§impl<'ob> From<Gc<NumberType<'ob>>> for Gc<ObjectType<'ob>>
impl<'ob> From<Gc<NumberType<'ob>>> for Gc<ObjectType<'ob>>
Source§fn from(x: Gc<NumberType<'ob>>) -> Self
fn from(x: Gc<NumberType<'ob>>) -> Self
Converts to this type from the input type.
Source§impl From<Gc<ObjectType<'_>>> for ()
impl From<Gc<ObjectType<'_>>> for ()
Source§fn from(_: Gc<ObjectType<'_>>)
fn from(_: Gc<ObjectType<'_>>)
Converts to this type from the input type.
Source§impl<'ob> From<NumberType<'ob>> for Gc<ObjectType<'ob>>
impl<'ob> From<NumberType<'ob>> for Gc<ObjectType<'ob>>
Source§fn from(x: NumberType<'ob>) -> Self
fn from(x: NumberType<'ob>) -> Self
Converts to this type from the input type.
Source§impl GcMoveable for Gc<FunctionType<'_>>
impl GcMoveable for Gc<FunctionType<'_>>
Source§impl GcMoveable for Gc<ListType<'_>>
impl GcMoveable for Gc<ListType<'_>>
Source§impl GcMoveable for Gc<ObjectType<'_>>
impl GcMoveable for Gc<ObjectType<'_>>
Source§impl<T> GcMoveable for Gc<T>
impl<T> GcMoveable for Gc<T>
Source§impl<'ob> IntoIterator for Gc<ListType<'ob>>
impl<'ob> IntoIterator for Gc<ListType<'ob>>
Source§impl<T> IntoObject for Gc<T>
impl<T> IntoObject for Gc<T>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for &'ob ByteString
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for &'ob ByteString
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for &'ob LispHashTable
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for &'ob LispHashTable
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for &'ob LispString
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for &'ob LispString
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob ByteString>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob ByteString>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob LispBigInt>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob LispBigInt>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob LispBuffer>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob LispBuffer>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob LispHashTable>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob LispHashTable>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob LispString>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<&'ob LispString>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<FunctionType<'ob>>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<FunctionType<'ob>>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<NumberType<'ob>>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Gc<NumberType<'ob>>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Option<&'ob ByteString>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Option<&'ob ByteString>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Option<&'ob LispHashTable>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Option<&'ob LispHashTable>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Option<&'ob LispString>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Option<&'ob LispString>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Option<Gc<NumberType<'ob>>>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Option<Gc<NumberType<'ob>>>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Result<[Gc<ObjectType<'ob>>; 1], u16>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Result<[Gc<ObjectType<'ob>>; 1], u16>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Result<[Gc<ObjectType<'ob>>; 2], u16>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for Result<[Gc<ObjectType<'ob>>; 2], u16>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for StringOrChar<'ob>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for StringOrChar<'ob>
Source§impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for StringOrSymbol<'ob>
impl<'ob> TryFrom<Gc<ObjectType<'ob>>> for StringOrSymbol<'ob>
Source§impl<'new, T: WithLifetime<'new>> WithLifetime<'new> for Gc<T>
impl<'new, T: WithLifetime<'new>> WithLifetime<'new> for Gc<T>
type Out = Gc<<T as WithLifetime<'new>>::Out>
unsafe fn with_lifetime(self) -> Self::Out
impl<T: Copy> Copy for Gc<T>
impl<T> Eq for Gc<T>
impl<T> GcPtr for Gc<T>
impl<T> Send for Gc<T>
Auto Trait Implementations§
impl<T> Freeze for Gc<T>
impl<T> RefUnwindSafe for Gc<T>where
T: RefUnwindSafe,
impl<T> !Sync for Gc<T>
impl<T> Unpin for Gc<T>where
T: Unpin,
impl<T> UnwindSafe for Gc<T>where
T: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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.