Macro spacetimedb_sats::impl_st
source · macro_rules! impl_st { ([ $($rgenerics:tt)* ] $rty:ty, $ts:ident => $stty:expr) => { ... }; }
Expand description
Implements SpacetimeType
for a type in a simplified manner.
An example:
ⓘ
struct Foo<'a, T>(&'a T, u8);
impl_st!(
// Type parameters Impl type
// v v
// -------------------- ----------
['a, T: SpacetimeType] Foo<'a, T>,
// The `make_type` implementation where `ts: impl TypespaceBuilder`
// and the expression right of `=>` is an `AlgebraicType`.
ts => AlgebraicType::product([T::make_type(ts), AlgebraicType::U8])
);