Modules§
- private π
Macros§
- cast_gc π
- object_
trait_ πimpls
Structs§
- Gc π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.
- RawObj π
Enums§
- Function
Type πThe enum form of Function to take advantage of ergonomics of enums in Rust. - List
Type πThe enum form of List to take advantage of ergonomics of enums in Rust. - Number
Type πThe enum form of Number to take advantage of ergonomics of enums in Rust. - Object
Type πThe enum form of Object to take advantage of ergonomics of enums in Rust.
Constants§
- MAX_
FIXNUM π - MIN_
FIXNUM π - NIL πA
nil
object. - TRUE πA
t
object.
Traits§
- CloneIn π
- GcPtr π
- Into
Object πTrait for types that can be managed by the GC. This trait is implemented for as many types as possible, even for types that are already Gc managed, LikeGc<T>
. This makes it easier to write generic code for working with Gc types. - TagType πA wrapper trait to expose the
tag
method for GC managed references and immediate values. This is convenient when we donβt have access to theContext
but want to retag a value. Doesnβt currently have a lot of use. - Untag πThe TaggedPtr trait is local to this module (by design). This trait exports the one pubic method we want (untag) so it can be used in other modules.
- With
Lifetime πHelper trait to change the lifetime of a Gc mangaged type. This is useful because objects are initially tied to the lifetime of the Context they are allocated in. But when rooted the lifetime is dissociated from the Context. If we only worked with references, we could just use transmutes or casts to handle this, but generic types donβt expose their lifetimes. This trait is used to work around that. Must be used with extreme care, as it is easy to cast it to an invalid lifetime.
Functions§
- cast_gc π β
- cast_
pair π - int_
to_ πchar
Type Aliases§
- Function πRepresents a tagged pointer to a lisp object that could be interpreted as a function. Note that not all
Function
types are valid functions (it could be a cons cell for example). - List πRepresents a tagged pointer to a list value (cons or nil)
- Number πRepresents a tagged pointer to a number value
- Object πThe Object defintion that contains all other possible lisp objects. This type must remain covariant over βob.
- Optional
Flag π