You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Oct 22, 2020. It is now read-only.
pub trait SpirvVector {
type Intrinsic: Intrinsic;
}
unsafe trait Intrinsic {}
// This type has the metainformation
#[spirv(Vector3)]
struct SpirvVec3;
unsafe impl Intrinsic for SpirvVec3{}
impl SpirvVector for SomeExternalMathVec3 {
type Intrinsic = SpirvVec3;
}
// Check if a given type implements SpirvVector, if it does then access the Intrinsic type which
// has the metainformation to generate a specific OpVector type.
// Some pseudo code
let trait_impl: Option<TraitImpl> = tcx.get_impl_of_trait(ty, def_id);
let associated_ty: Option<Ty> = trait_impl.and_then(|trait_impl| trait_impl.associated_types_iter().first());
fn type_moves_by_default should be enough to figure out how trait system works in rustc
The text was updated successfully, but these errors were encountered:
fn type_moves_by_default
should be enough to figure out how trait system works in rustcThe text was updated successfully, but these errors were encountered: