It's pretty perilous to accidentally create multiple owned Ids for the same instance of an object. Maybe when an owned Id is created in Rust, we could set a flag on that object using the ObjC runtime's associated objects to ensure that no other owned Ids are created. (Inspired by @jrmuizel at gfx-rs/metal-rs#40 (comment)).
Alternatively, we could look at the reference count to verify this? But reference counts don't seem particularly reliable, as there might be auto-releases that are still pending.
It's pretty perilous to accidentally create multiple owned Ids for the same instance of an object. Maybe when an owned Id is created in Rust, we could set a flag on that object using the ObjC runtime's associated objects to ensure that no other owned Ids are created. (Inspired by @jrmuizel at gfx-rs/metal-rs#40 (comment)).
Alternatively, we could look at the reference count to verify this? But reference counts don't seem particularly reliable, as there might be auto-releases that are still pending.