datagen-rs 0.1.0

A random data generator written in rust
Documentation
#[cfg(feature = "map-schema")]
pub mod generate {
    use crate::generate::current_schema::CurrentSchemaRef;
    use crate::generate::generated_schema::GeneratedSchema;
    use crate::schema::transform::Transform;
    use crate::util::types::Result;
    use std::sync::Arc;

    pub trait TransformTrait {
        fn transform(
            self,
            schema: CurrentSchemaRef,
            value: Arc<GeneratedSchema>,
        ) -> Result<Arc<GeneratedSchema>>;
    }

    impl TransformTrait for Vec<Transform> {
        fn transform(
            self,
            schema: CurrentSchemaRef,
            mut value: Arc<GeneratedSchema>,
        ) -> Result<Arc<GeneratedSchema>> {
            for transform in self {
                value = transform.transform(schema.clone(), value)?;
            }

            Ok(value)
        }
    }

    pub trait ResolveRef {
        fn resolve_ref(self, schema: &CurrentSchemaRef) -> Result<Arc<GeneratedSchema>>;
    }

    impl ResolveRef for String {
        fn resolve_ref(self, schema: &CurrentSchemaRef) -> Result<Arc<GeneratedSchema>> {
            schema.resolve_ref(self)?.into_random()
        }
    }
}