#[derive(Clone, Copy, Debug, Eq, PartialEq, thiserror::Error)]
pub enum CollectionError {
#[error("unrecognized collection format")]
Format,
#[error("collection growth refused")]
Growth,
#[error("collection memory is not empty")]
NotEmpty,
#[error("{0}")]
Cell(#[from] crate::StableCellPayloadError),
}
pub(super) type Result<T> = std::result::Result<T, CollectionError>;
pub(super) const fn ensure(condition: bool, error: CollectionError) -> Result<()> {
if condition { Ok(()) } else { Err(error) }
}