use super::*;
use crate::ciphersuite::hash_ref::KeyPackageRef;
use tls_codec::{TlsDeserialize, TlsSerialize, TlsSize};
#[derive(
Debug, PartialEq, Clone, Serialize, Deserialize, TlsSerialize, TlsDeserialize, TlsSize,
)]
#[repr(u8)]
pub enum Sender {
#[tls_codec(discriminant = 1)]
Member(KeyPackageRef),
Preconfigured(TlsByteVecU8),
NewMember,
}
impl Sender {
pub(crate) fn from_sender_data(sender_data: MlsSenderData) -> Self {
Self::Member(sender_data.sender)
}
pub(crate) fn build_member(kpr: &KeyPackageRef) -> Self {
Self::Member(*kpr)
}
pub(crate) fn build_new_member() -> Self {
Self::NewMember
}
pub(crate) fn is_member(&self) -> bool {
matches!(self, Sender::Member(_))
}
}