sbrd_gen/generator/primitive/
always_null_generator.rs1use crate::builder::GeneratorBuilder;
2use crate::error::{BuildError, GenerateError};
3use crate::generator::{GeneratorBase, Randomizer};
4use crate::value::{DataValue, DataValueMap};
5use crate::GeneratorType;
6
7#[derive(Debug, PartialEq, Eq, Clone)]
11pub struct AlwaysNullGenerator {}
12
13impl<R: Randomizer + ?Sized> GeneratorBase<R> for AlwaysNullGenerator {
14 fn create(builder: GeneratorBuilder) -> Result<Self, BuildError>
15 where
16 Self: Sized,
17 {
18 let GeneratorBuilder { generator_type, .. } = builder;
19
20 if generator_type != GeneratorType::AlwaysNull {
21 return Err(BuildError::InvalidType(generator_type));
22 }
23
24 Ok(Self {})
25 }
26
27 fn is_nullable(&self) -> bool {
28 true
29 }
30
31 fn generate_without_null(
32 &self,
33 _rng: &mut R,
34 _context: &DataValueMap<&str>,
35 ) -> Result<DataValue, GenerateError> {
36 Ok(DataValue::Null)
37 }
38}