spacetimedb-sats 2.2.0

Spacetime Algebraic Type Notation
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::{de, impl_deserialize, impl_serialize, impl_st, AlgebraicType};
pub use spacetimedb_primitives::ColumnAttribute;
pub use spacetimedb_primitives::Constraints;

impl_deserialize!([] ColumnAttribute, de =>
    Self::from_bits(de.deserialize_u8()?)
        .ok_or_else(|| de::Error::custom("invalid bitflags for `ColumnAttribute`"))
);
impl_serialize!([] ColumnAttribute, (self, ser) => ser.serialize_u8(self.bits()));
impl_st!([] ColumnAttribute, AlgebraicType::U8);

impl_deserialize!([] Constraints, de => Self::try_from(de.deserialize_u8()?)
    .map_err(|_| de::Error::custom("invalid bitflags for `Constraints`"))
);
impl_serialize!([] Constraints, (self, ser) => ser.serialize_u8(self.bits()));
impl_st!([] Constraints, AlgebraicType::U8);