diff options
| author | Laurenz <laurmaedje@gmail.com> | 2020-01-19 21:50:20 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2020-01-19 21:53:24 +0100 |
| commit | 95e6b078fecddeaa3d6f2c920b617201b74bf01e (patch) | |
| tree | 1c03b0b16d614a5a2350dccf71a1eb1e34f9a812 /tests/src/layouter.rs | |
| parent | 277f2d2176f5e98305870f90b16af3feae1bb3d1 (diff) | |
Move to non-fatal errors 🪂 [WIP]
- Dynamic models instead of SyntaxTrees
- No more ParseResult/LayoutResult
- Errors and Decorations which are propagated to parent contexts
- Models are finally clonable
Diffstat (limited to 'tests/src/layouter.rs')
| -rw-r--r-- | tests/src/layouter.rs | 49 |
1 files changed, 19 insertions, 30 deletions
diff --git a/tests/src/layouter.rs b/tests/src/layouter.rs index fa0c631a..eeca1a1b 100644 --- a/tests/src/layouter.rs +++ b/tests/src/layouter.rs @@ -76,10 +76,7 @@ fn test(name: &str, src: &str) -> DynResult<()> { let font_paths = provider.paths(); typesetter.add_font_provider(provider); - let layouts = match compile(&typesetter, src) { - Some(layouts) => layouts, - None => return Ok(()), - }; + let layouts = compile(&typesetter, src); // Compute the font's paths. let mut fonts = HashMap::new(); @@ -122,40 +119,32 @@ fn test(name: &str, src: &str) -> DynResult<()> { } /// Compile the source code with the typesetter. -fn compile(typesetter: &Typesetter, src: &str) -> Option<MultiLayout> { +fn compile(typesetter: &Typesetter, src: &str) -> MultiLayout { #[cfg(not(debug_assertions))] { use std::time::Instant; // Warmup. let warmup_start = Instant::now(); - let is_ok = block_on(typesetter.typeset(&src)).is_ok(); + block_on(typesetter.typeset(&src)); let warmup_end = Instant::now(); - // Only continue if the typesetting was successful. - if is_ok { - let start = Instant::now(); - let tree = typesetter.parse(&src).unwrap(); - let mid = Instant::now(); - block_on(typesetter.layout(&tree)).unwrap(); - let end = Instant::now(); - - println!(" - cold start: {:?}", warmup_end - warmup_start); - println!(" - warmed up: {:?}", end - start); - println!(" - parsing: {:?}", mid - start); - println!(" - layouting: {:?}", end - mid); - println!(); - } - }; - - match block_on(typesetter.typeset(&src)) { - Ok(layouts) => Some(layouts), - Err(err) => { - println!(" - compilation failed: {}", err); - #[cfg(not(debug_assertions))] - println!(); - None - } + let start = Instant::now(); + let tree = typesetter.parse(&src).output; + let mid = Instant::now(); + let layouts = block_on(typesetter.layout(&tree)).output; + let end = Instant::now(); + + println!(" - cold start: {:?}", warmup_end - warmup_start); + println!(" - warmed up: {:?}", end - start); + println!(" - parsing: {:?}", mid - start); + println!(" - layouting: {:?}", end - mid); + println!(); + + layouts } + + #[cfg(debug_assertions)] + block_on(typesetter.typeset(&src)) } /// Command line options. |
