File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -6,7 +6,8 @@ use clap::Parser;
66
77use crate :: dialog:: Dialog ;
88use crate :: errors:: { Error , Res } ;
9- use crate :: generator:: { Data , Generator as _} ;
9+ use crate :: data:: Data ;
10+ use crate :: generator_trait:: Generator as _;
1011use crate :: json:: JsonArgs ;
1112
1213/// CLI to generate some fake data under JSON format.
Original file line number Diff line number Diff line change @@ -10,20 +10,8 @@ use serde_json::{Number, Value};
1010
1111use crate :: data_generator:: RandomDataGenerator ;
1212use crate :: errors:: { Error , Res } ;
13- ///
14- /// Generate random data of the given type.
15- pub trait Generator < T > : Sized {
16- /// Generate random data of the given type.
17- fn generate ( & self , data : & mut Data ) -> Res < T > ;
18- }
13+ use crate :: generator_trait:: { Generator , NullableGenerator } ;
1914
20- /// Generate random data of the given type, but with a nullable type.
21- pub trait NullableGenerator < T > : Sized {
22- /// Generate random data of the given type, but with a nullable type.
23- ///
24- /// This can sometimes returns None.
25- fn generate_nullable ( & self , data : & mut Data ) -> Res < Option < T > > ;
26- }
2715
2816/// Contains the list of data types and the random generator to apply
2917/// generators.
Original file line number Diff line number Diff line change 22
33//pub mod range;
44
5- use dialoguer:: FuzzySelect ;
65use dialoguer:: theme:: ColorfulTheme as ColourfulTheme ;
6+ use dialoguer:: FuzzySelect ;
77
8+ use crate :: data:: Data ;
89use crate :: errors:: Res ;
9- use crate :: generator :: { Data , Generator as _} ;
10+ use crate :: generator_trait :: Generator as _;
1011
1112/// Dialog to fuzzy search, select and generate some data of a data type.
1213pub struct Dialog ;
Original file line number Diff line number Diff line change 1+ //! Traits to make structs generate some data in a formatted way.
2+
3+ use crate :: data:: Data ;
4+ use crate :: errors:: Res ;
5+
6+ /// Generate random data of the given type.
7+ pub trait Generator < T > : Sized {
8+ /// Generate random data of the given type.
9+ fn generate ( & self , data : & mut Data ) -> Res < T > ;
10+ }
11+
12+ /// Generate random data of the given type, but with a nullable type.
13+ pub trait NullableGenerator < T > : Sized {
14+ /// Generate random data of the given type, but with a nullable type.
15+ ///
16+ /// This can sometimes returns None.
17+ fn generate_nullable ( & self , data : & mut Data ) -> Res < Option < T > > ;
18+ }
Original file line number Diff line number Diff line change @@ -4,8 +4,9 @@ use core::iter::repeat_with;
44
55use serde_json:: { Map , Value } ;
66
7+ use crate :: data:: Data ;
78use crate :: errors:: { Error , Res } ;
8- use crate :: generator :: { Data , Generator , NullableGenerator } ;
9+ use crate :: generator_trait :: { Generator , NullableGenerator } ;
910
1011impl Generator < Value > for Map < String , Value > {
1112 fn generate ( & self , data : & mut Data ) -> Res < Value > {
Original file line number Diff line number Diff line change @@ -6,8 +6,9 @@ use core::fmt::Write as _;
66
77use serde_json:: Value ;
88
9+ use crate :: data:: Data ;
910use crate :: errors:: { Error , Res } ;
10- use crate :: generator :: { Data , NullableGenerator as _} ;
11+ use crate :: generator_trait :: NullableGenerator as _;
1112
1213/// Arguments for generating JSON data based on a schema file.
1314pub struct JsonArgs {
Original file line number Diff line number Diff line change 4242#![ allow( clippy:: unwrap_in_result, reason = "unwrap_used is active" ) ]
4343
4444mod clap;
45+ mod data;
4546mod data_generator;
4647mod dialog;
4748mod errors;
48- mod generator ;
49+ mod generator_trait ;
4950mod json;
5051
5152fn main ( ) {
You can’t perform that action at this time.
0 commit comments