pub trait TaggedBorrowMut<T, const TAG: u8> {
// Required method
fn borrow_mut(&mut self) -> &mut T;
}Expand description
Designing everything for a pratical system is hard. Designing everything
correctly is impossible. That’s why a versioned spec module is prepared.
At any time top level module does wildcard re-exporting from the latest
version of spec. To survive from a breaking change, change use crate::*
to use crate::spec::v1::*.
Some structs need to implement Borrow on non-specific types, e.g. generic
parameters or trait’s associate type. Include a tag to prevent these
implementations collide with each other.
The value of tag is unlimited. Currently only roles are used as tags, but it could be extended some time.