pub trait Instantiate {
// Required method
fn instantiate(self, args: &[TypeReference]) -> Self;
}Required Methods§
sourcefn instantiate(self, args: &[TypeReference]) -> Self
fn instantiate(self, args: &[TypeReference]) -> Self
Apply type arguments to a generic struct or enum. This should return a non-generic instance with all type parameters substituted with the matching type arguments.
Example:
Given a generic struct struct Foo<T, U> { a: T, b: U } and type arguments [i32, String], the instantiate(struct Foo<T, U>, [i32, String]) should be a non-generic struct struct Foo { a: i32, b: String }.
This is implemented by generating a substitution map from the type parameters to the type
argument T -> i32, U -> String and then substituting each occurence of the type parameter with the type argument.
Object Safety§
This trait is not object safe.