#instance #user #struct #time #numbers #reference #default

macro one_user

Constrain the number of instances that can possibly be used at a time. By default it constrains it to one instance at a time, hence one_user.

7 releases

0.3.2 Feb 2, 2022
0.3.1 Apr 17, 2021
0.2.0 Apr 16, 2021
0.1.2 Apr 15, 2021

#1119 in Procedural macros

MIT/Apache

12KB
167 lines

One User

This crate provides a way to make sure a struct is only used by "N users" at a time. It achives this by providing a procedural macro which generates code for forcing only N active "views" (a.k.a mut references to some instances of the struct) at a time. Under the hood this is done by having a bound and unbound version of your struct and then requiring a &mut to a bouncer to give you a bound to a slot, and since bouncers are unique per slot there can only ever be N bounds whre N is the numbers of slots. It also provides a hook for reacting to an instance of your struct being bound to a slot.

Dependencies

~2.5MB
~60K SLoC