use crate::ParityCheckMatrix;
use rand::{thread_rng, Rng};
pub mod best_code_finder;
pub use best_code_finder::BestCodeFinderUsingErasure;
pub mod random_checks;
pub mod regular_ldpc;
pub use regular_ldpc::*;
pub mod hierarchical_codes;
pub mod increasing_range_code;
pub use increasing_range_code::*;
pub trait CodeGenerator: Sync + Send {
fn generate_with_rng<R: Rng>(&self, rng: &mut R) -> ParityCheckMatrix;
fn generate(&self) -> ParityCheckMatrix {
self.generate_with_rng(&mut thread_rng())
}
}