Macro freya::prelude::default_impl
macro_rules! default_impl { ( $ty:ident // Accept generics < T $(, $gen:ident $(: $gen_bound:path)?)* $(,)?> // Accept extra bounds $( where $( $extra_bound_ty:ident: $extra_bound:path ),+ )? ) => { ... }; }
Expand description
This macro is used to generate a impl Default
block for any type with the function new_maybe_sync that takes a generic T
ยงExample
use generational_box::*;
use dioxus::prelude::*;
struct MyCopyValue<T: 'static, S: Storage<T>> {
value: CopyValue<T, S>,
}
impl<T: 'static, S: Storage<T>> MyCopyValue<T, S> {
fn new_maybe_sync(value: T) -> Self {
Self { value: CopyValue::new_maybe_sync(value) }
}
}
impl<T: 'static, S: Storage<T>> Readable for MyCopyValue<T, S> {
type Target = T;
type Storage = S;
fn try_read_unchecked(
&self,
) -> Result<ReadableRef<'static, Self>, generational_box::BorrowError> {
self.value.try_read_unchecked()
}
fn peek_unchecked(&self) -> ReadableRef<'static, Self> {
self.value.read_unchecked()
}
}
default_impl!(MyCopyValue<T, S: Storage<T>>);