use thiserror::Error;
#[derive(Error, Debug)]
#[allow(missing_copy_implementations)]
pub enum SecretGroupError {
#[error("this method can only be used by group owners")]
NotOwner,
#[error("commit does not contain welcome message")]
WelcomeMissing,
#[error("long-term secret has an invalid group id")]
LTSInvalidGroupID,
#[error("can not decrypt long-term secret since key material is missing")]
LTSSecretMissing,
#[error("could not encode long-term secret")]
LTSEncodingError,
#[error("could not decode long-term secret")]
LTSDecodingError,
#[error("member's public key is not a valid Ed25519 public key")]
InvalidMemberPublicKey,
#[error("unknown value found during decoding")]
UnknownValue,
#[error(transparent)]
MlsError(#[from] crate::secret_group::mls::error::MlsError),
#[error(transparent)]
LTSError(#[from] crate::secret_group::lts::error::LongTermSecretError),
}