/src/wasm-tools/crates/wit-smith/src/config.rs
Line | Count | Source (jump to first uncovered line) |
1 | | use arbitrary::{Arbitrary, Result, Unstructured}; |
2 | | |
3 | | #[derive(Debug, Clone)] |
4 | | #[cfg_attr(feature = "clap", derive(clap::Parser))] |
5 | | pub struct Config { |
6 | | #[cfg_attr(feature = "clap", clap(long, default_value_t = Config::default().max_packages))] |
7 | | pub max_packages: usize, |
8 | | #[cfg_attr(feature = "clap", clap(long, default_value_t = Config::default().max_type_size))] |
9 | | pub max_type_size: usize, |
10 | | #[cfg_attr(feature = "clap", clap(long, default_value_t = Config::default().max_interface_items))] |
11 | | pub max_interface_items: usize, |
12 | | #[cfg_attr(feature = "clap", clap(long, default_value_t = Config::default().max_world_items))] |
13 | | pub max_world_items: usize, |
14 | | #[cfg_attr(feature = "clap", clap(long, default_value_t = Config::default().max_pkg_items))] |
15 | | pub max_pkg_items: usize, |
16 | | #[cfg_attr(feature = "clap", clap(long, default_value_t = Config::default().max_type_parts))] |
17 | | pub max_type_parts: usize, |
18 | | #[cfg_attr(feature = "clap", clap(long, default_value_t = Config::default().max_files_per_package))] |
19 | | pub max_files_per_package: usize, |
20 | | #[cfg_attr(feature = "clap", clap(long, default_value_t = Config::default().max_resource_items))] |
21 | | pub max_resource_items: usize, |
22 | | } |
23 | | |
24 | | impl Default for Config { |
25 | 0 | fn default() -> Config { |
26 | 0 | Config { |
27 | 0 | max_packages: 10, |
28 | 0 | max_type_size: 100, |
29 | 0 | max_interface_items: 10, |
30 | 0 | max_world_items: 10, |
31 | 0 | max_pkg_items: 10, |
32 | 0 | max_type_parts: 10, |
33 | 0 | max_files_per_package: 10, |
34 | 0 | max_resource_items: 10, |
35 | 0 | } |
36 | 0 | } |
37 | | } |
38 | | |
39 | | impl Arbitrary<'_> for Config { |
40 | 3.56k | fn arbitrary(u: &mut Unstructured<'_>) -> Result<Config> { |
41 | 3.56k | Ok(Config { |
42 | 3.56k | max_packages: u.int_in_range(1..=20)?, |
43 | 3.56k | max_files_per_package: u.int_in_range(1..=10)?, |
44 | 3.56k | max_type_size: u.int_in_range(0..=1000)?, |
45 | 3.56k | max_interface_items: u.int_in_range(0..=20)?, |
46 | 3.56k | max_world_items: u.int_in_range(0..=10)?, |
47 | 3.56k | max_pkg_items: u.int_in_range(1..=10)?, |
48 | 3.56k | max_type_parts: u.int_in_range(1..=10)?, |
49 | 3.56k | max_resource_items: u.int_in_range(0..=10)?, |
50 | | }) |
51 | 3.56k | } |
52 | | } |