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