struct User { groups: Vec <Arc>, } struct Group { leader: Option < Arc >, } let g = Arc:: new (Group { leader: None }); let u = Arc:: new (User { groups: vec! #[contextual(Rug)] struct User { groups: Vec <Proxy>, } #[contextual(Rug)] struct Group { leader: Option <Proxy>, } #[derive(Default)] #[persian_rug] struct Rug (#[table] User, #[table] Group);