pub use icydb_core::traits::{
Add, AddAssign, CanisterKind, Collection, Debug, Default, Deserialize, DeserializeOwned, Div,
DivAssign, EntityCreateInput, EntityCreateMaterialization, EntityCreateType, EntityKey,
EntityKeyBytes, EntityKind, EntityPlacement, EntitySchema, EntityValue, Eq, FieldTypeMeta,
From, Hash, Inner, Kind, MapCollection, Mul, MulAssign, NumericValue, Ordering, PartialEq,
Path, Rem, Sanitize, SanitizeAuto, SanitizeCustom, Sanitizer, Serialize, SingletonEntity,
Storable, StoreKind, Sub, SubAssign, TypeKind, Validate, ValidateAuto, ValidateCustom,
Validator, Visitable,
};
pub trait Entity: icydb_core::db::PersistedRow + EntityValue {}
impl<T> Entity for T where T: icydb_core::db::PersistedRow + EntityValue {}
pub trait EntityFor<C: CanisterKind>: Entity + EntityKind<Canister = C> {}
impl<T, C> EntityFor<C> for T
where
T: Entity + EntityKind<Canister = C>,
C: CanisterKind,
{
}
pub trait CreateInput: EntityCreateInput
where
Self::Entity: Entity,
{
}
impl<T> CreateInput for T
where
T: EntityCreateInput,
T::Entity: Entity,
{
}
pub trait CreateInputFor<C: CanisterKind>: CreateInput
where
Self::Entity: EntityFor<C>,
{
}
impl<T, C> CreateInputFor<C> for T
where
T: CreateInput,
T::Entity: EntityFor<C>,
C: CanisterKind,
{
}