pub trait MarkerScopeValidFor<Proof> { }Expand description
Marker validation for a specific scope-satisfaction proof.
use drizzle_core::{Cons, Nil, Scoped, SelectAs, SelectRequiredTables};
use drizzle_core::row::{MarkerScopeValidFor, ScopeHere};
struct Users;
struct Model;
impl SelectRequiredTables for Model {
type RequiredTables = Cons<Users, Nil>;
}
type Good = Scoped<SelectAs<Model>, Cons<Users, Nil>>;
fn needs_valid<M: MarkerScopeValidFor<(ScopeHere, ())>>() {}
fn main() {
needs_valid::<Good>();
}ⓘ
use drizzle_core::{Cons, Nil, Scoped, SelectAs, SelectRequiredTables};
use drizzle_core::row::{MarkerScopeValidFor, ScopeHere};
struct Users;
struct Posts;
struct Model;
impl SelectRequiredTables for Model {
type RequiredTables = Cons<Users, Nil>;
}
type Bad = Scoped<SelectAs<Model>, Cons<Posts, Nil>>;
fn needs_valid<M: MarkerScopeValidFor<(ScopeHere, ())>>() {}
fn main() {
needs_valid::<Bad>();
}Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".