1use std::ops::{BitXor, BitXorAssign};
5
6use bytemuck::Pod;
7use cryprot_core::Block;
8
9pub mod ex_conv;
10
11pub use ex_conv::{ExConvCode, ExConvCodeConfig};
12
13pub trait Coeff:
15 BitXor<Output = Self> + BitXorAssign + Copy + Clone + Pod + Sized + private::Sealed
16{
17 const ZERO: Self;
18}
19
20impl Coeff for Block {
21 const ZERO: Self = Block::ZERO;
22}
23
24impl Coeff for u8 {
25 const ZERO: Self = 0;
26}
27
28mod private {
29 pub trait Sealed {}
30
31 impl Sealed for super::Block {}
32 impl Sealed for u8 {}
33}