pub struct ImplSig {
pub trait_name: Arc<str>,
pub params: Vec<Arc<str>>,
pub target: Ty,
pub effects: Vec<(Arc<str>, Vec<Effect>)>,
}Expand description
A published impl Trait for Type.
There is no body here and there never will be: an importing module needs to know that the implementation exists and what its signature is, and the implementation itself stays where it was written.
Fields§
§trait_name: Arc<str>§params: Vec<Arc<str>>The impl’s own type parameters: ["T"] for impl[T] Priced for Bundle[T].
target: TyThe target, with those parameters as rigid names — Bundle[T].
effects: Vec<(Arc<str>, Vec<Effect>)>What each method actually performs, by name, for the methods that perform anything.
The trait declares an abstract signature; this impl’s methods may be more effectful than
it (docs/47), so a caller in another module cannot take the row off the trait. It has to
be published with the impl, and this is where it crosses. Empty rows are omitted: most
impls are pure and a .becki full of uses clauses saying nothing is a .becki nobody
reviews.