#[non_exhaustive]pub struct ReducerDef {
pub name: ReducerName,
pub accessor_name: ReducerName,
pub params: ProductType,
pub params_for_generate: ProductTypeDef,
pub lifecycle: Option<Lifecycle>,
pub visibility: FunctionVisibility,
pub ok_return_type: AlgebraicType,
pub err_return_type: AlgebraicType,
}Expand description
A reducer exported by the module.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: ReducerNameThe name of the reducer. This must be unique within the module’s set of reducers and procedures.
accessor_name: ReducerNameThe reducer name as defined in the module source.
All the codegens should use accessor_name to generate reducers.
However, the name field should still be used when communicating with the
database over the network, since the database does not necessarily know
about accessor names.
params: ProductTypeThe parameters of the reducer.
This ProductType need not be registered in the module’s Typespace.
params_for_generate: ProductTypeDefThe parameters of the reducer, formatted for client codegen.
This ProductType need not be registered in the module’s TypespaceForGenerate.
lifecycle: Option<Lifecycle>The special role of this reducer in the module lifecycle, if any.
visibility: FunctionVisibilityThe visibility of this reducer.
ok_return_type: AlgebraicTypeThe return type of the reducer on success.
err_return_type: AlgebraicTypeThe return type of the reducer on error.
Trait Implementations§
Source§impl Clone for ReducerDef
impl Clone for ReducerDef
Source§fn clone(&self) -> ReducerDef
fn clone(&self) -> ReducerDef
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ReducerDef
impl Debug for ReducerDef
Source§impl From<ReducerDef> for RawReducerDefV10
impl From<ReducerDef> for RawReducerDefV10
Source§fn from(val: ReducerDef) -> Self
fn from(val: ReducerDef) -> Self
Source§impl From<ReducerDef> for RawReducerDefV9
impl From<ReducerDef> for RawReducerDefV9
Source§fn from(val: ReducerDef) -> Self
fn from(val: ReducerDef) -> Self
Source§impl FunctionDef for ReducerDef
impl FunctionDef for ReducerDef
fn params(&self) -> &ProductType
fn name(&self) -> &Identifier
Source§impl ModuleDefLookup for ReducerDef
impl ModuleDefLookup for ReducerDef
Source§type Key<'a> = &'a ReducerName
type Key<'a> = &'a ReducerName
Source§impl PartialEq for ReducerDef
impl PartialEq for ReducerDef
impl Eq for ReducerDef
impl StructuralPartialEq for ReducerDef
Auto Trait Implementations§
impl Freeze for ReducerDef
impl RefUnwindSafe for ReducerDef
impl Send for ReducerDef
impl Sync for ReducerDef
impl Unpin for ReducerDef
impl UnsafeUnpin for ReducerDef
impl UnwindSafe for ReducerDef
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more