From 207444976b11533fbbce0d958a39472b34f3eebb Mon Sep 17 00:00:00 2001 From: Dominik Nakamura Date: Sun, 29 Oct 2023 17:23:38 +0900 Subject: [PATCH] perf: extend the benchmark for better resolving checks The current schema generated for benchmarks on large schemas didn't generate any definitions that use type references. Therefore, the benchmark didn't give good insight on type resolution timing. --- crates/stef-benches/src/lib.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/crates/stef-benches/src/lib.rs b/crates/stef-benches/src/lib.rs index 264f756..9d7e6eb 100644 --- a/crates/stef-benches/src/lib.rs +++ b/crates/stef-benches/src/lib.rs @@ -99,5 +99,20 @@ pub fn generate_schema(count: usize) -> String { writeln!(&mut input, "type Alias{i} = SampleNamed;").unwrap(); } + input.push_str("\nmod resolve {\n"); + writeln!(&mut input, " struct Sample {{").unwrap(); + for i in 1..=count { + writeln!(&mut input, " field{i:05}: Type{i:05} @{i},").unwrap(); + } + writeln!(&mut input, " }}").unwrap(); + for i in 1..=count { + writeln!(&mut input, " struct Type{i:05} {{").unwrap(); + writeln!(&mut input, " value1: string @1,").unwrap(); + writeln!(&mut input, " value2: i64 @2,").unwrap(); + writeln!(&mut input, " value3: u64 @3,").unwrap(); + writeln!(&mut input, " }}").unwrap(); + } + input.push_str("}\n"); + input }