use crate::named::Named;
use crate::shortint::backward_compatibility::parameters::transciphering::TranscipheringParametersVersions;
use serde::{Deserialize, Serialize};
use tfhe_versionable::Versionize;
use super::{AtomicPatternParameters, OprfParameters};
#[derive(Copy, Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Versionize)]
#[versionize(TranscipheringParametersVersions)]
#[non_exhaustive]
pub enum TranscipheringParameters {
SameAsCompute,
DedicatedOprf(OprfParameters),
}
impl TranscipheringParameters {
pub const fn oprf_parameters(self, compute_params: AtomicPatternParameters) -> OprfParameters {
match self {
Self::SameAsCompute => OprfParameters::same_as_compute(compute_params),
Self::DedicatedOprf(oprf_params) => oprf_params,
}
}
}
impl Named for TranscipheringParameters {
const NAME: &'static str = "shortint::TranscipheringParameters";
}