pub trait ValueDefault:
Send
+ Sync
+ NonLocalValue
+ ValueDebug {
// Required method
fn value_default() -> Vc<Self>
where Self: Sized;
}Expand description
Vc<T> analog to the Default trait.
Implementing this trait on T will make Vc::default() produce
T::value_default().
There are two ways to implement this trait:
- Annotating with
#[turbo_tasks::value_impl]: this will makeVc::default()always return the same underlying value (i.e. a singleton). - No annotations: this will make
Vc::default()always return a different value.
Required Methods§
fn value_default() -> Vc<Self>where
Self: Sized,
Trait Implementations§
impl Dynamic<Box<dyn ValueDebug>> for Box<dyn ValueDefault>
Available on debug-assertions enabled only.
impl Dynamic<Box<dyn ValueDefault>> for Box<dyn ValueDefault>
impl Upcast<Box<dyn ValueDebug>> for Box<dyn ValueDefault>
Available on debug-assertions enabled only.
impl Upcast<Box<dyn ValueDefault>> for ()
impl Upcast<Box<dyn ValueDefault>> for String
impl Upcast<Box<dyn ValueDefault>> for RcStr
impl Upcast<Box<dyn ValueDefault>> for Option<String>
impl Upcast<Box<dyn ValueDefault>> for Option<RcStr>
impl Upcast<Box<dyn ValueDefault>> for Vec<RcStr>
impl Upcast<Box<dyn ValueDefault>> for Option<u16>
impl Upcast<Box<dyn ValueDefault>> for Option<u64>
impl Upcast<Box<dyn ValueDefault>> for bool
impl Upcast<Box<dyn ValueDefault>> for Option<bool>
impl Upcast<Box<dyn ValueDefault>> for u8
impl Upcast<Box<dyn ValueDefault>> for u16
impl Upcast<Box<dyn ValueDefault>> for u32
impl Upcast<Box<dyn ValueDefault>> for u64
impl Upcast<Box<dyn ValueDefault>> for u128
impl Upcast<Box<dyn ValueDefault>> for i8
impl Upcast<Box<dyn ValueDefault>> for i16
impl Upcast<Box<dyn ValueDefault>> for i32
impl Upcast<Box<dyn ValueDefault>> for i64
impl Upcast<Box<dyn ValueDefault>> for i128
impl Upcast<Box<dyn ValueDefault>> for usize
impl Upcast<Box<dyn ValueDefault>> for isize
impl Upcast<Box<dyn ValueDefault>> for Value
impl Upcast<Box<dyn ValueDefault>> for Duration
impl Upcast<Box<dyn ValueDefault>> for Vec<u8>
impl Upcast<Box<dyn ValueDefault>> for Vec<bool>
impl Upcast<Box<dyn ValueDefault>> for Box<dyn ValueDefault>
impl UpcastStrict<Box<dyn ValueDebug>> for Box<dyn ValueDefault>
Available on debug-assertions enabled only.
impl UpcastStrict<Box<dyn ValueDefault>> for ()
impl UpcastStrict<Box<dyn ValueDefault>> for String
impl UpcastStrict<Box<dyn ValueDefault>> for RcStr
impl UpcastStrict<Box<dyn ValueDefault>> for Option<String>
impl UpcastStrict<Box<dyn ValueDefault>> for Option<RcStr>
impl UpcastStrict<Box<dyn ValueDefault>> for Vec<RcStr>
impl UpcastStrict<Box<dyn ValueDefault>> for Option<u16>
impl UpcastStrict<Box<dyn ValueDefault>> for Option<u64>
impl UpcastStrict<Box<dyn ValueDefault>> for bool
impl UpcastStrict<Box<dyn ValueDefault>> for Option<bool>
impl UpcastStrict<Box<dyn ValueDefault>> for u8
impl UpcastStrict<Box<dyn ValueDefault>> for u16
impl UpcastStrict<Box<dyn ValueDefault>> for u32
impl UpcastStrict<Box<dyn ValueDefault>> for u64
impl UpcastStrict<Box<dyn ValueDefault>> for u128
impl UpcastStrict<Box<dyn ValueDefault>> for i8
impl UpcastStrict<Box<dyn ValueDefault>> for i16
impl UpcastStrict<Box<dyn ValueDefault>> for i32
impl UpcastStrict<Box<dyn ValueDefault>> for i64
impl UpcastStrict<Box<dyn ValueDefault>> for i128
impl UpcastStrict<Box<dyn ValueDefault>> for usize
impl UpcastStrict<Box<dyn ValueDefault>> for isize
impl UpcastStrict<Box<dyn ValueDefault>> for Value
impl UpcastStrict<Box<dyn ValueDefault>> for Duration
impl UpcastStrict<Box<dyn ValueDefault>> for Vec<u8>
impl UpcastStrict<Box<dyn ValueDefault>> for Vec<bool>
Source§impl VcValueTrait for Box<dyn ValueDefault>
impl VcValueTrait for Box<dyn ValueDefault>
Source§const IMPL_VTABLES: &'static VTableRegistry<Self::ValueTrait>
const IMPL_VTABLES: &'static VTableRegistry<Self::ValueTrait>
The per-trait vtable registry, populated by [crate::value_type::register_all_trait_methods] Read more
type ValueTrait = dyn ValueDefault
Source§fn get_trait_type_id() -> TraitTypeId
fn get_trait_type_id() -> TraitTypeId
Returns the type id of the trait object.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".