jrsonnet-gc 0.4.2

Tracing garbage collector plugin for Rust.
Documentation
use jrsonnet_gc::{Gc, Trace};
use jrsonnet_gc_derive::{Finalize, Trace};

trait Foo: Trace {}

#[derive(Trace, Finalize)]
struct Bar;
impl Foo for Bar {}

#[derive(Trace, Finalize)]
struct AnyFoo(dyn Foo);

#[test]
fn gc_box_dyn_foo() {
    let _: Gc<Box<dyn Foo>> = Gc::new(Box::new(Bar));
}

#[cfg(feature = "nightly")]
#[test]
fn gc_dyn_foo() {
    let _: Gc<dyn Foo> = Gc::new(Bar);
}

#[allow(dead_code)]
fn gc_box_anyfoo(b: Box<AnyFoo>) -> Gc<Box<AnyFoo>> {
    Gc::new(b)
}