var searchIndex = {}; searchIndex["cell_gc"] = {"doc":"A simple garbage collector for use in Rust.","items":[[3,"Heap","cell_gc","",null,null],[3,"GCRef","","",null,null],[5,"with_heap","","Create a heap, pass it to a callback, then destroy the heap.",null,{"inputs":[{"name":"f"}],"output":{"name":"o"}}],[5,"page_capacity","","Return the number of allocations of a given type that fit in a "page".\n(Unstable. This is a temporary hack for testing.)",null,{"inputs":[],"output":{"name":"usize"}}],[0,"traits","","The traits defined here are implementation details of cell_gc.",null,null],[8,"IntoHeap","cell_gc::traits","Trait for values that can be moved into a GC heap.",null,null],[16,"In","","The type of the value when it is physically stored in the heap.",0,null],[10,"into_heap","","Convert the value to the form it should have in the heap.\nThis is for macro-generated code to call.",0,null],[10,"from_heap","","Extract the value from the heap. This turns any raw pointers in the\nin-heap value into safe references, so while it's an unsafe function,\nthe result of a correct call can be safely handed out to user code.",0,{"inputs":[{"name":"in"}],"output":{"name":"self"}}],[10,"mark","","Unsafe to call: It is impossible for ordinary users to call this\nsafely, because `self` must be a direct, unwrapped reference to a value\nstored in the GC heap, which ordinary users cannot obtain.",0,{"inputs":[{"name":"in"}],"output":null}],[8,"IntoHeapAllocation","","Relate an `IntoHeap` type to the corresponding safe reference type.",null,null],[16,"Ref","","",1,null],[10,"wrap_gcref","","",1,{"inputs":[{"name":"gcref"}],"output":{"name":"ref"}}],[11,"pin","cell_gc","Add the object `*p` to the root set, protecting it from GC.",2,null],[11,"unpin","","Unpin an object (see `pin`).",2,null],[11,"try_alloc","","",2,null],[11,"from_allocation","","",2,null],[11,"get_mark_bit","","",2,null],[11,"set_mark_bit","","",2,null],[11,"alloc","","",2,null],[11,"force_gc","","",2,null],[11,"drop","","",2,null],[11,"new","","Pin an object, returning a new `GCRef` that will unpin it when\ndropped. Unsafe because if `p` is not a pointer to a live allocation of\ntype `T::In` --- and a complete allocation, not a sub-object of one ---\nthen later unsafe code will explode.",3,null],[11,"as_ptr","","",3,null],[11,"as_mut_ptr","","",3,null],[11,"drop","","",3,null],[11,"clone","","",3,null],[11,"fmt","","",3,null],[11,"eq","","",3,null],[0,"collections","","Collections for use with GC references.",null,null],[3,"VecStorage","cell_gc::collections","An implementation detail.",null,null],[3,"VecRef","","A reference to a GC-heap-allocated `Vec`.",null,null],[11,"eq","","",4,null],[11,"ne","","",4,null],[11,"fmt","","",4,null],[11,"clone","","",4,null],[11,"into_heap","","",4,null],[11,"from_heap","","",4,null],[11,"mark","","",4,null],[11,"get","","Get the element `index` from the vector.",4,null],[11,"get_all","","Copy the vector out of the GC-managed heap. This returns an ordinary,\nnon-GC-managed Rust `Vec`.",4,null],[11,"set","","Set element `index` of the vector to `value`.",4,null],[11,"capacity","","",4,null],[11,"reserve","","",4,null],[11,"reserve_exact","","",4,null],[11,"shrink_to_fit","","",4,null],[11,"truncate","","",4,null],[11,"swap_remove","","",4,null],[11,"insert","","",4,null],[11,"remove","","",4,null],[11,"push","","",4,null],[11,"pop","","",4,null],[11,"append","","",4,null],[11,"clear","","",4,null],[11,"len","","",4,null],[11,"is_empty","","",4,null],[11,"first","","Get the first element of the vector, or `None` if the vector is empty.",4,null],[11,"last","","Get the last element of the vector, or `None` if the vector is empty.",4,null],[11,"sort","","Sort the vector in place.",4,null],[11,"sort_by","","",4,null],[14,"gc_heap_type!","cell_gc","The `gc_heap_type!` macro can declare structs and enums for use with `Heap::alloc`.",null,null]],"paths":[[8,"IntoHeap"],[8,"IntoHeapAllocation"],[3,"Heap"],[3,"GCRef"],[3,"VecRef"]]}; initSearch(searchIndex);