[INFO] cloning repository https://github.com/bezaleel22/webpdf [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bezaleel22/webpdf" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbezaleel22%2Fwebpdf", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbezaleel22%2Fwebpdf'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2b8b84aab1c7d8a79c43657a83237b40648a7513 [INFO] checking bezaleel22/webpdf/2b8b84aab1c7d8a79c43657a83237b40648a7513 against master#c9af9c1dc85a55e309345030ff9cb7ea247953fa for pr-151146 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbezaleel22%2Fwebpdf" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/bezaleel22/webpdf [INFO] finished tweaking git repo https://github.com/bezaleel22/webpdf [INFO] tweaked toml for git repo https://github.com/bezaleel22/webpdf written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/bezaleel22/webpdf on toolchain c9af9c1dc85a55e309345030ff9cb7ea247953fa [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c9af9c1dc85a55e309345030ff9cb7ea247953fa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/bezaleel22/webpdf already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c9af9c1dc85a55e309345030ff9cb7ea247953fa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded unicode-ccc v0.4.0 [INFO] [stderr] Downloaded peniko v0.4.0 [INFO] [stderr] Downloaded unicode-bidi-mirroring v0.4.0 [INFO] [stderr] Downloaded imagesize v0.13.0 [INFO] [stderr] Downloaded subsetter v0.2.2 [INFO] [stderr] Downloaded xmp-writer v0.3.2 [INFO] [stderr] Downloaded xml5ever v0.35.0 [INFO] [stderr] Downloaded kurbo v0.11.3 [INFO] [stderr] Downloaded objc2-core-text v0.3.1 [INFO] [stderr] Downloaded krilla v0.4.0 [INFO] [stderr] Downloaded taffy v0.8.3 [INFO] [stderr] Downloaded parley v0.5.0 [INFO] [stderr] Downloaded fontconfig-cache-parser v0.2.0 [INFO] [stderr] Downloaded fontique v0.5.0 [INFO] [stderr] Downloaded markup5ever_rcdom v0.35.0+unofficial [INFO] [stderr] Downloaded rustybuzz v0.20.1 [INFO] [stderr] Downloaded color v0.3.1 [INFO] [stderr] Downloaded grid v0.17.0 [INFO] [stderr] Downloaded read-fonts v0.28.0 [INFO] [stderr] Downloaded core_maths v0.1.0 [INFO] [stderr] Downloaded font-types v0.8.4 [INFO] [stderr] Downloaded read-fonts v0.29.3 [INFO] [stderr] Downloaded jiff v0.2.1 [INFO] [stderr] Downloaded pdf-writer v0.13.0 [INFO] [stderr] Downloaded skrifa v0.30.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+c9af9c1dc85a55e309345030ff9cb7ea247953fa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4dc98fc661226ca5cc08b87781cd7f6a7bbfec1dacb0993c9aa8d5e58711b0cd [INFO] running `Command { std: "docker" "start" "-a" "4dc98fc661226ca5cc08b87781cd7f6a7bbfec1dacb0993c9aa8d5e58711b0cd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4dc98fc661226ca5cc08b87781cd7f6a7bbfec1dacb0993c9aa8d5e58711b0cd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4dc98fc661226ca5cc08b87781cd7f6a7bbfec1dacb0993c9aa8d5e58711b0cd", kill_on_drop: false }` [INFO] [stdout] 4dc98fc661226ca5cc08b87781cd7f6a7bbfec1dacb0993c9aa8d5e58711b0cd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+c9af9c1dc85a55e309345030ff9cb7ea247953fa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 52d8e8c77934ac46f8f5668e34515bad2719f2ee603cc1bf1937a86a4423aa16 [INFO] running `Command { std: "docker" "start" "-a" "52d8e8c77934ac46f8f5668e34515bad2719f2ee603cc1bf1937a86a4423aa16", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.92 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Checking phf_shared v0.11.2 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Compiling libm v0.2.11 [INFO] [stderr] Checking foldhash v0.1.3 [INFO] [stderr] Checking block-padding v0.3.3 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking kurbo v0.11.3 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Checking slab v0.4.10 [INFO] [stderr] Checking color v0.3.1 [INFO] [stderr] Checking litemap v0.7.4 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Checking dtoa v1.0.9 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Compiling selectors v0.31.0 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking dtoa-short v0.3.5 [INFO] [stderr] Checking quick-error v2.0.1 [INFO] [stderr] Checking zune-core v0.4.12 [INFO] [stderr] Checking unicode-bidi-mirroring v0.4.0 [INFO] [stderr] Checking roxmltree v0.20.0 [INFO] [stderr] Checking pom v1.1.0 [INFO] [stderr] Checking bytecount v0.6.9 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking nom v8.0.0 [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking unicode-ccc v0.4.0 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Checking unicode-script v0.5.7 [INFO] [stderr] Checking zune-jpeg v0.4.14 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking peniko v0.4.0 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking core_maths v0.1.0 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Checking clap_builder v4.5.42 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Checking pdf-writer v0.13.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking cbc v0.1.2 [INFO] [stderr] Compiling syn v2.0.90 [INFO] [stderr] Compiling string_cache_codegen v0.5.4 [INFO] [stderr] Checking ecb v0.1.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Checking image-webp v0.2.3 [INFO] [stderr] Checking time v0.3.41 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking memmap2 v0.9.5 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking signal-hook-registry v1.4.6 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.6.0 [INFO] [stderr] Compiling web_atoms v0.1.3 [INFO] [stderr] Checking subsetter v0.2.2 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Checking float-cmp v0.10.0 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Checking xmp-writer v0.3.2 [INFO] [stderr] Checking grid v0.17.0 [INFO] [stderr] Checking bumpalo v3.16.0 [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Checking jiff v0.2.1 [INFO] [stderr] Checking imagesize v0.13.0 [INFO] [stderr] Checking rangemap v1.6.0 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking clap v4.5.42 [INFO] [stderr] Checking rustix v1.0.8 [INFO] [stderr] Checking taffy v0.8.3 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking is-terminal v0.4.16 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking adobe-cmap-parser v0.4.1 [INFO] [stderr] Checking type1-encoding-parser v0.1.0 [INFO] [stderr] Checking euclid v0.20.14 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking cff-parser v0.1.0 [INFO] [stderr] Checking postscript v0.14.1 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking nom_locate v5.0.0 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Compiling bytemuck_derive v1.8.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling phf_macros v0.11.2 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling match_token v0.35.0 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling zerofrom-derive v0.1.5 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking phf v0.11.2 [INFO] [stderr] Checking tinystr v0.7.6 [INFO] [stderr] Checking cssparser v0.35.0 [INFO] [stderr] Checking tokio v1.47.1 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking derive_more v2.0.1 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking bytemuck v1.23.1 [INFO] [stderr] Checking thiserror v2.0.12 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking font-types v0.9.0 [INFO] [stderr] Checking font-types v0.8.4 [INFO] [stderr] Checking fontconfig-cache-parser v0.2.0 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking rustybuzz v0.20.1 [INFO] [stderr] Checking zerofrom v0.1.5 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking read-fonts v0.28.0 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking read-fonts v0.29.3 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking lopdf v0.36.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking pdf-extract v0.9.0 [INFO] [stderr] Checking string_cache v0.8.9 [INFO] [stderr] Checking serde_json v1.0.142 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking skrifa v0.31.3 [INFO] [stderr] Checking fontique v0.5.0 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] Checking markup5ever v0.35.0 [INFO] [stderr] Checking skrifa v0.30.0 [INFO] [stderr] Checking xml5ever v0.35.0 [INFO] [stderr] Checking html5ever v0.35.0 [INFO] [stderr] Checking markup5ever_rcdom v0.35.0+unofficial [INFO] [stderr] Checking krilla v0.4.0 [INFO] [stderr] Checking swash v0.2.5 [INFO] [stderr] Checking parley v0.5.0 [INFO] [stderr] Checking webpdf v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/utils/error.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/utils/config.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/utils/cache.rs:7:20 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::utils::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `WebPdfError` and `WebPdfResult` [INFO] [stdout] --> src/utils/diagnostics.rs:6:20 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::utils::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RecoveryStrategy` [INFO] [stdout] --> src/parser/html.rs:7:77 [INFO] [stdout] | [INFO] [stdout] 7 | use super::{DocumentFragment, DocumentMetadata, ParseError, ParsedDocument, RecoveryStrategy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Instant` [INFO] [stdout] --> src/parser/html.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::time::Instant; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `WebPdfError` and `WebPdfResult` [INFO] [stdout] --> src/parser/mod.rs:33:20 [INFO] [stdout] | [INFO] [stdout] 33 | use crate::utils::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/style/cascade.rs:7:20 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::utils::{WebPdfError, WebPdfResult, config::StyleConfig}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CascadedRule` [INFO] [stdout] --> src/style/computed.rs:7:70 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::style::{ElementId, StyleContext, cascade::{CascadeResult, CascadedRule}}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/style/tree.rs:11:41 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::utils::{config::StyleConfig, WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CssRule` [INFO] [stdout] --> src/style/mod.rs:32:49 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::parser::{ParsedDocument, Stylesheet, CssRule, Declaration}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `markup5ever_rcdom::Handle` [INFO] [stdout] --> src/style/mod.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | use markup5ever_rcdom::Handle; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ComputedStyle` [INFO] [stdout] --> src/layout/mod.rs:46:38 [INFO] [stdout] | [INFO] [stdout] 46 | use crate::style::{ComputedStyleSet, ComputedStyle, ElementId}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/layout/mod.rs:47:20 [INFO] [stdout] | [INFO] [stdout] 47 | use crate::utils::{WebPdfError, WebPdfResult, cache::LruCache, config::LayoutConfig}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RcDom` [INFO] [stdout] --> src/layout/engine.rs:12:43 [INFO] [stdout] | [INFO] [stdout] 12 | use markup5ever_rcdom::{Handle, NodeData, RcDom}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/layout/text.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::utils::{WebPdfError, WebPdfResult, config::LayoutConfig}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ElementInfo` [INFO] [stdout] --> src/layout/box_model.rs:7:42 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::style::computed::{LengthUnit, ElementInfo}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LayoutNodeContext` [INFO] [stdout] --> src/render/pdf.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::layout::{LayoutNodeContext, LayoutNodeType, LayoutTree}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LinearGradient`, `SpreadMethod`, and `Stop` [INFO] [stdout] --> src/render/pdf.rs:21:37 [INFO] [stdout] | [INFO] [stdout] 21 | use krilla::paint::{Fill, FillRule, LinearGradient, SpreadMethod, Stop}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GlyphId` and `KrillaGlyph` [INFO] [stdout] --> src/render/pdf.rs:23:26 [INFO] [stdout] | [INFO] [stdout] 23 | use krilla::text::{Font, GlyphId, KrillaGlyph, TextDirection}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Layout` [INFO] [stdout] --> src/render/pdf.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | use taffy::{Layout, NodeId, Size as TaffySize}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Fill` and `Transform` [INFO] [stdout] --> src/render/graphics/paths.rs:5:31 [INFO] [stdout] | [INFO] [stdout] 5 | use super::{GraphicsRenderer, Fill, Stroke, Rectangle, Transform}; [INFO] [stdout] | ^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PathBuilder` and `Rect` [INFO] [stdout] --> src/render/graphics/mod.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use krilla::geom::{PathBuilder, Point, Rect}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `krilla::surface::Surface` [INFO] [stdout] --> src/render/graphics/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use krilla::surface::Surface; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/render/graphics/mod.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/render/text/measurement.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::utils::error::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/render/text/glyphs.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::utils::error::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::layout::LayoutNodeContext` [INFO] [stdout] --> src/render/text/mod.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::layout::LayoutNodeContext; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ElementInfo` [INFO] [stdout] --> src/render/text/mod.rs:11:60 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::style::computed::{ComputedStyle, PropertyValue, ElementInfo}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/render/text/mod.rs:12:27 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::utils::error::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/render/text/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LayoutNodeContext` and `LayoutNodeType` [INFO] [stdout] --> src/render/mod.rs:10:33 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::layout::{LayoutTree, LayoutNodeContext, LayoutNodeType}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ComputedStyle` [INFO] [stdout] --> src/render/mod.rs:11:38 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::style::{ComputedStyleSet, ComputedStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/render/mod.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::utils::{WebPdfError, WebPdfResult, config::RenderConfig}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Config` and `WebPdfError` [INFO] [stdout] --> src/document/context.rs:37:20 [INFO] [stdout] | [INFO] [stdout] 37 | use crate::utils::{WebPdfError, WebPdfResult, Config, cache::LruCache}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PipelineConfig` [INFO] [stdout] --> src/document/api.rs:46:51 [INFO] [stdout] | [INFO] [stdout] 46 | use crate::document::pipeline::{DocumentPipeline, PipelineConfig, PipelineMetrics}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ParsedDocument` and `Stylesheet` [INFO] [stdout] --> src/document/mod.rs:98:21 [INFO] [stdout] | [INFO] [stdout] 98 | use crate::parser::{ParsedDocument, Stylesheet}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ComputedStyleSet` and `StyleTree` [INFO] [stdout] --> src/document/mod.rs:99:20 [INFO] [stdout] | [INFO] [stdout] 99 | use crate::style::{ComputedStyleSet, StyleTree}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LayoutTree` and `Viewport` [INFO] [stdout] --> src/document/mod.rs:100:21 [INFO] [stdout] | [INFO] [stdout] 100 | use crate::layout::{LayoutTree, Viewport}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::render::PdfDocument` [INFO] [stdout] --> src/document/mod.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | use crate::render::PdfDocument; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Margins` [INFO] [stdout] --> src/legacy_compat/core.rs:25:45 [INFO] [stdout] | [INFO] [stdout] 25 | use crate::document::api::{DocumentBuilder, Margins}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::layout::Viewport` [INFO] [stdout] --> src/legacy_compat/core.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use crate::layout::Viewport; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DocumentConfig` and `DocumentProcessor` [INFO] [stdout] --> src/legacy_compat/embedded.rs:28:45 [INFO] [stdout] | [INFO] [stdout] 28 | use crate::document::api::{DocumentBuilder, DocumentProcessor, DocumentConfig, Margins}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Config` [INFO] [stdout] --> src/legacy_compat/embedded.rs:30:47 [INFO] [stdout] | [INFO] [stdout] 30 | use crate::utils::{WebPdfError, WebPdfResult, Config, validate_string_input, clamp}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/legacy_compat/embedded.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `create_text_brush_from_css` [INFO] [stdout] --> src/legacy_compat/text.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | create_text_brush_from_css, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::style::computed::ComputedStyle` [INFO] [stdout] --> src/legacy_compat/text.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use crate::style::computed::ComputedStyle; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/legacy_compat/text.rs:28:20 [INFO] [stdout] | [INFO] [stdout] 28 | use crate::utils::{WebPdfError, WebPdfResult, clamp}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Arc` [INFO] [stdout] --> src/legacy_compat/text.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | use std::sync::{Arc, Mutex, OnceLock}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `krilla::image::Image` [INFO] [stdout] --> src/prototype/pdf_renderer.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use krilla::image::Image; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/utils/error.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: duplicated attribute [INFO] [stdout] --> src/utils/error.rs:465:5 [INFO] [stdout] | [INFO] [stdout] 465 | #[test] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(duplicate_macro_attributes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/utils/config.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/utils/cache.rs:7:20 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::utils::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `WebPdfError` and `WebPdfResult` [INFO] [stdout] --> src/utils/diagnostics.rs:6:20 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::utils::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RecoveryStrategy` [INFO] [stdout] --> src/parser/html.rs:7:77 [INFO] [stdout] | [INFO] [stdout] 7 | use super::{DocumentFragment, DocumentMetadata, ParseError, ParsedDocument, RecoveryStrategy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Instant` [INFO] [stdout] --> src/parser/html.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::time::Instant; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `WebPdfError` and `WebPdfResult` [INFO] [stdout] --> src/parser/mod.rs:33:20 [INFO] [stdout] | [INFO] [stdout] 33 | use crate::utils::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/style/cascade.rs:7:20 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::utils::{WebPdfError, WebPdfResult, config::StyleConfig}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CssRule`, `Declaration`, and `Stylesheet` [INFO] [stdout] --> src/style/cascade.rs:510:25 [INFO] [stdout] | [INFO] [stdout] 510 | use crate::parser::{Stylesheet, CssRule, Declaration}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CascadedRule` [INFO] [stdout] --> src/style/computed.rs:7:70 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::style::{ElementId, StyleContext, cascade::{CascadeResult, CascadedRule}}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/style/tree.rs:11:41 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::utils::{config::StyleConfig, WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::style::computed::ComputedStyleSet` [INFO] [stdout] --> src/style/tree.rs:598:9 [INFO] [stdout] | [INFO] [stdout] 598 | use crate::style::computed::ComputedStyleSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CssRule` [INFO] [stdout] --> src/style/mod.rs:32:49 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::parser::{ParsedDocument, Stylesheet, CssRule, Declaration}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `markup5ever_rcdom::Handle` [INFO] [stdout] --> src/style/mod.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | use markup5ever_rcdom::Handle; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ComputedStyle` [INFO] [stdout] --> src/layout/mod.rs:46:38 [INFO] [stdout] | [INFO] [stdout] 46 | use crate::style::{ComputedStyleSet, ComputedStyle, ElementId}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/layout/mod.rs:47:20 [INFO] [stdout] | [INFO] [stdout] 47 | use crate::utils::{WebPdfError, WebPdfResult, cache::LruCache, config::LayoutConfig}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RcDom` [INFO] [stdout] --> src/layout/engine.rs:12:43 [INFO] [stdout] | [INFO] [stdout] 12 | use markup5ever_rcdom::{Handle, NodeData, RcDom}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/layout/text.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::utils::{WebPdfError, WebPdfResult, config::LayoutConfig}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ElementInfo` [INFO] [stdout] --> src/layout/box_model.rs:7:42 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::style::computed::{LengthUnit, ElementInfo}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LayoutNodeContext` [INFO] [stdout] --> src/render/pdf.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::layout::{LayoutNodeContext, LayoutNodeType, LayoutTree}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LinearGradient`, `SpreadMethod`, and `Stop` [INFO] [stdout] --> src/render/pdf.rs:21:37 [INFO] [stdout] | [INFO] [stdout] 21 | use krilla::paint::{Fill, FillRule, LinearGradient, SpreadMethod, Stop}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GlyphId` and `KrillaGlyph` [INFO] [stdout] --> src/render/pdf.rs:23:26 [INFO] [stdout] | [INFO] [stdout] 23 | use krilla::text::{Font, GlyphId, KrillaGlyph, TextDirection}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Layout` [INFO] [stdout] --> src/render/pdf.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | use taffy::{Layout, NodeId, Size as TaffySize}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Fill` and `Transform` [INFO] [stdout] --> src/render/graphics/paths.rs:5:31 [INFO] [stdout] | [INFO] [stdout] 5 | use super::{GraphicsRenderer, Fill, Stroke, Rectangle, Transform}; [INFO] [stdout] | ^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PathBuilder` and `Rect` [INFO] [stdout] --> src/render/graphics/mod.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use krilla::geom::{PathBuilder, Point, Rect}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `krilla::surface::Surface` [INFO] [stdout] --> src/render/graphics/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use krilla::surface::Surface; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/render/graphics/mod.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/render/text/measurement.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::utils::error::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/render/text/glyphs.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::utils::error::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::layout::LayoutNodeContext` [INFO] [stdout] --> src/render/text/mod.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::layout::LayoutNodeContext; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/render/text/mod.rs:12:27 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::utils::error::{WebPdfError, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LayoutNodeContext` and `LayoutNodeType` [INFO] [stdout] --> src/render/mod.rs:10:33 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::layout::{LayoutTree, LayoutNodeContext, LayoutNodeType}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ComputedStyle` [INFO] [stdout] --> src/render/mod.rs:11:38 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::style::{ComputedStyleSet, ComputedStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/render/mod.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::utils::{WebPdfError, WebPdfResult, config::RenderConfig}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Config` and `WebPdfError` [INFO] [stdout] --> src/document/context.rs:37:20 [INFO] [stdout] | [INFO] [stdout] 37 | use crate::utils::{WebPdfError, WebPdfResult, Config, cache::LruCache}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PipelineConfig` [INFO] [stdout] --> src/document/api.rs:46:51 [INFO] [stdout] | [INFO] [stdout] 46 | use crate::document::pipeline::{DocumentPipeline, PipelineConfig, PipelineMetrics}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ParsedDocument` and `Stylesheet` [INFO] [stdout] --> src/document/mod.rs:98:21 [INFO] [stdout] | [INFO] [stdout] 98 | use crate::parser::{ParsedDocument, Stylesheet}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ComputedStyleSet` and `StyleTree` [INFO] [stdout] --> src/document/mod.rs:99:20 [INFO] [stdout] | [INFO] [stdout] 99 | use crate::style::{ComputedStyleSet, StyleTree}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LayoutTree` and `Viewport` [INFO] [stdout] --> src/document/mod.rs:100:21 [INFO] [stdout] | [INFO] [stdout] 100 | use crate::layout::{LayoutTree, Viewport}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::render::PdfDocument` [INFO] [stdout] --> src/document/mod.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | use crate::render::PdfDocument; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Margins` [INFO] [stdout] --> src/legacy_compat/core.rs:25:45 [INFO] [stdout] | [INFO] [stdout] 25 | use crate::document::api::{DocumentBuilder, Margins}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::layout::Viewport` [INFO] [stdout] --> src/legacy_compat/core.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use crate::layout::Viewport; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DocumentConfig` and `DocumentProcessor` [INFO] [stdout] --> src/legacy_compat/embedded.rs:28:45 [INFO] [stdout] | [INFO] [stdout] 28 | use crate::document::api::{DocumentBuilder, DocumentProcessor, DocumentConfig, Margins}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Config` [INFO] [stdout] --> src/legacy_compat/embedded.rs:30:47 [INFO] [stdout] | [INFO] [stdout] 30 | use crate::utils::{WebPdfError, WebPdfResult, Config, validate_string_input, clamp}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/legacy_compat/embedded.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `create_text_brush_from_css` [INFO] [stdout] --> src/legacy_compat/text.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | create_text_brush_from_css, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::style::computed::ComputedStyle` [INFO] [stdout] --> src/legacy_compat/text.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use crate::style::computed::ComputedStyle; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfError` [INFO] [stdout] --> src/legacy_compat/text.rs:28:20 [INFO] [stdout] | [INFO] [stdout] 28 | use crate::utils::{WebPdfError, WebPdfResult, clamp}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Arc` [INFO] [stdout] --> src/legacy_compat/text.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | use std::sync::{Arc, Mutex, OnceLock}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `krilla::image::Image` [INFO] [stdout] --> src/prototype/pdf_renderer.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use krilla::image::Image; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::Document`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/mod.rs:43:16 [INFO] [stdout] | [INFO] [stdout] 43 | pub use core::{Document, Pipeline, LegacyConfig}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::Pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/mod.rs:43:26 [INFO] [stdout] | [INFO] [stdout] 43 | pub use core::{Document, Pipeline, LegacyConfig}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `legacy_compat::core::LegacyConfig`: Use Config directly instead [INFO] [stdout] --> src/legacy_compat/mod.rs:43:36 [INFO] [stdout] | [INFO] [stdout] 43 | pub use core::{Document, Pipeline, LegacyConfig}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/mod.rs:44:20 [INFO] [stdout] | [INFO] [stdout] 44 | pub use embedded::{EmbeddedDocument, EmbeddedDocumentBuilder, ValidationLevel}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocumentBuilder`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/mod.rs:44:38 [INFO] [stdout] | [INFO] [stdout] 44 | pub use embedded::{EmbeddedDocument, EmbeddedDocumentBuilder, ValidationLevel}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated enum `legacy_compat::embedded::ValidationLevel`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/mod.rs:44:63 [INFO] [stdout] | [INFO] [stdout] 44 | pub use embedded::{EmbeddedDocument, EmbeddedDocumentBuilder, ValidationLevel}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/mod.rs:45:16 [INFO] [stdout] | [INFO] [stdout] 45 | pub use text::{FontManager as LegacyFontManager, Typography, TextLayout as LegacyTextLayout}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/mod.rs:45:50 [INFO] [stdout] | [INFO] [stdout] 45 | pub use text::{FontManager as LegacyFontManager, Typography, TextLayout as LegacyTextLayout}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::TextLayout`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/mod.rs:45:62 [INFO] [stdout] | [INFO] [stdout] 45 | pub use text::{FontManager as LegacyFontManager, Typography, TextLayout as LegacyTextLayout}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::Document`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:41:6 [INFO] [stdout] | [INFO] [stdout] 41 | impl Document { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::Pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:117:6 [INFO] [stdout] | [INFO] [stdout] 117 | impl Pipeline { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::LegacyConfigBuilder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:165:6 [INFO] [stdout] | [INFO] [stdout] 165 | impl LegacyConfigBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:51:6 [INFO] [stdout] | [INFO] [stdout] 51 | impl EmbeddedDocument { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocumentBuilder`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:197:6 [INFO] [stdout] | [INFO] [stdout] 197 | impl EmbeddedDocumentBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated enum `legacy_compat::embedded::ValidationLevel`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:353:16 [INFO] [stdout] | [INFO] [stdout] 353 | pub level: ValidationLevel, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationIssue`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:390:21 [INFO] [stdout] | [INFO] [stdout] 390 | pub issues: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationResult`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:96:44 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn validate(&self) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationIssue`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:102:25 [INFO] [stdout] | [INFO] [stdout] 102 | issues.push(ValidationIssue { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationIssue`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:112:25 [INFO] [stdout] | [INFO] [stdout] 112 | issues.push(ValidationIssue { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationIssue`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:123:29 [INFO] [stdout] | [INFO] [stdout] 123 | issues.push(ValidationIssue { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationResult`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | Ok(ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::DocumentMetadata`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:142:31 [INFO] [stdout] | [INFO] [stdout] 142 | pub fn metadata(&self) -> DocumentMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::DocumentMetadata`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | DocumentMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated enum `legacy_compat::embedded::ValidationLevel`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:177:45 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn set_validation(&mut self, level: ValidationLevel) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated unit variant `legacy_compat::embedded::ValidationLevel::Strict`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:279:30 [INFO] [stdout] | [INFO] [stdout] 279 | ValidationLevel::Strict [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated unit variant `legacy_compat::embedded::ValidationLevel::None`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:281:30 [INFO] [stdout] | [INFO] [stdout] 281 | ValidationLevel::None [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated enum `legacy_compat::embedded::ValidationLevel`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:290:46 [INFO] [stdout] | [INFO] [stdout] 290 | pub fn validation_level(mut self, level: ValidationLevel) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:299:40 [INFO] [stdout] | [INFO] [stdout] 299 | pub fn build(self) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:311:12 [INFO] [stdout] | [INFO] [stdout] 311 | Ok(EmbeddedDocument { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated unit variant `legacy_compat::embedded::ValidationLevel::Basic`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:361:37 [INFO] [stdout] | [INFO] [stdout] 361 | level: ValidationLevel::Basic, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:45:6 [INFO] [stdout] | [INFO] [stdout] 45 | impl FontManager { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:142:6 [INFO] [stdout] | [INFO] [stdout] 142 | impl Typography { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:213:18 [INFO] [stdout] | [INFO] [stdout] 213 | impl Default for Typography { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:237:21 [INFO] [stdout] | [INFO] [stdout] 237 | pub typography: Typography, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::TextLayout`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:244:6 [INFO] [stdout] | [INFO] [stdout] 244 | impl TextLayout { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:481:21 [INFO] [stdout] | [INFO] [stdout] 481 | pub typography: Typography, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::TextStyle`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:484:6 [INFO] [stdout] | [INFO] [stdout] 484 | impl TextStyle { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::TextStyle`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:505:18 [INFO] [stdout] | [INFO] [stdout] 505 | impl Default for TextStyle { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:515:52 [INFO] [stdout] | [INFO] [stdout] 515 | pub fn get_global_font_manager() -> &'static Mutex { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:518:20 [INFO] [stdout] | [INFO] [stdout] 518 | Mutex::new(FontManager::new().expect("Failed to create legacy font manager")) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:516:48 [INFO] [stdout] | [INFO] [stdout] 516 | static LEGACY_FONT_MANAGER: OnceLock> = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:249:46 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn new(content: &str, font_manager: &FontManager) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:252:25 [INFO] [stdout] | [INFO] [stdout] 252 | typography: Typography::default(), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:262:45 [INFO] [stdout] | [INFO] [stdout] 262 | pub fn typography(mut self, typography: Typography) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:491:25 [INFO] [stdout] | [INFO] [stdout] 491 | typography: Typography::default(), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:499:45 [INFO] [stdout] | [INFO] [stdout] 499 | pub fn typography(mut self, typography: Typography) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::Document`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/mod.rs:43:16 [INFO] [stdout] | [INFO] [stdout] 43 | pub use core::{Document, Pipeline, LegacyConfig}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::Pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/mod.rs:43:26 [INFO] [stdout] | [INFO] [stdout] 43 | pub use core::{Document, Pipeline, LegacyConfig}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `legacy_compat::core::LegacyConfig`: Use Config directly instead [INFO] [stdout] --> src/legacy_compat/mod.rs:43:36 [INFO] [stdout] | [INFO] [stdout] 43 | pub use core::{Document, Pipeline, LegacyConfig}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/mod.rs:44:20 [INFO] [stdout] | [INFO] [stdout] 44 | pub use embedded::{EmbeddedDocument, EmbeddedDocumentBuilder, ValidationLevel}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocumentBuilder`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/mod.rs:44:38 [INFO] [stdout] | [INFO] [stdout] 44 | pub use embedded::{EmbeddedDocument, EmbeddedDocumentBuilder, ValidationLevel}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated enum `legacy_compat::embedded::ValidationLevel`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/mod.rs:44:63 [INFO] [stdout] | [INFO] [stdout] 44 | pub use embedded::{EmbeddedDocument, EmbeddedDocumentBuilder, ValidationLevel}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/mod.rs:45:16 [INFO] [stdout] | [INFO] [stdout] 45 | pub use text::{FontManager as LegacyFontManager, Typography, TextLayout as LegacyTextLayout}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/mod.rs:45:50 [INFO] [stdout] | [INFO] [stdout] 45 | pub use text::{FontManager as LegacyFontManager, Typography, TextLayout as LegacyTextLayout}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::TextLayout`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/mod.rs:45:62 [INFO] [stdout] | [INFO] [stdout] 45 | pub use text::{FontManager as LegacyFontManager, Typography, TextLayout as LegacyTextLayout}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::Document`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:41:6 [INFO] [stdout] | [INFO] [stdout] 41 | impl Document { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::Pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:117:6 [INFO] [stdout] | [INFO] [stdout] 117 | impl Pipeline { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::core::LegacyConfigBuilder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:165:6 [INFO] [stdout] | [INFO] [stdout] 165 | impl LegacyConfigBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:51:6 [INFO] [stdout] | [INFO] [stdout] 51 | impl EmbeddedDocument { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocumentBuilder`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:197:6 [INFO] [stdout] | [INFO] [stdout] 197 | impl EmbeddedDocumentBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated enum `legacy_compat::embedded::ValidationLevel`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:353:16 [INFO] [stdout] | [INFO] [stdout] 353 | pub level: ValidationLevel, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationIssue`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:390:21 [INFO] [stdout] | [INFO] [stdout] 390 | pub issues: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationResult`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:96:44 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn validate(&self) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationIssue`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:102:25 [INFO] [stdout] | [INFO] [stdout] 102 | issues.push(ValidationIssue { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationIssue`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:112:25 [INFO] [stdout] | [INFO] [stdout] 112 | issues.push(ValidationIssue { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationIssue`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:123:29 [INFO] [stdout] | [INFO] [stdout] 123 | issues.push(ValidationIssue { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::ValidationResult`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | Ok(ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::DocumentMetadata`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:142:31 [INFO] [stdout] | [INFO] [stdout] 142 | pub fn metadata(&self) -> DocumentMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::DocumentMetadata`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | DocumentMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated enum `legacy_compat::embedded::ValidationLevel`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:177:45 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn set_validation(&mut self, level: ValidationLevel) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated unit variant `legacy_compat::embedded::ValidationLevel::Strict`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:279:30 [INFO] [stdout] | [INFO] [stdout] 279 | ValidationLevel::Strict [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated unit variant `legacy_compat::embedded::ValidationLevel::None`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:281:30 [INFO] [stdout] | [INFO] [stdout] 281 | ValidationLevel::None [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated enum `legacy_compat::embedded::ValidationLevel`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:290:46 [INFO] [stdout] | [INFO] [stdout] 290 | pub fn validation_level(mut self, level: ValidationLevel) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:299:40 [INFO] [stdout] | [INFO] [stdout] 299 | pub fn build(self) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::embedded::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:311:12 [INFO] [stdout] | [INFO] [stdout] 311 | Ok(EmbeddedDocument { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated unit variant `legacy_compat::embedded::ValidationLevel::Basic`: Validation is always enabled in the new architecture [INFO] [stdout] --> src/legacy_compat/embedded.rs:361:37 [INFO] [stdout] | [INFO] [stdout] 361 | level: ValidationLevel::Basic, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:45:6 [INFO] [stdout] | [INFO] [stdout] 45 | impl FontManager { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:142:6 [INFO] [stdout] | [INFO] [stdout] 142 | impl Typography { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:213:18 [INFO] [stdout] | [INFO] [stdout] 213 | impl Default for Typography { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:237:21 [INFO] [stdout] | [INFO] [stdout] 237 | pub typography: Typography, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::TextLayout`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:244:6 [INFO] [stdout] | [INFO] [stdout] 244 | impl TextLayout { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:481:21 [INFO] [stdout] | [INFO] [stdout] 481 | pub typography: Typography, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::TextStyle`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:484:6 [INFO] [stdout] | [INFO] [stdout] 484 | impl TextStyle { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::TextStyle`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:505:18 [INFO] [stdout] | [INFO] [stdout] 505 | impl Default for TextStyle { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:515:52 [INFO] [stdout] | [INFO] [stdout] 515 | pub fn get_global_font_manager() -> &'static Mutex { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:518:20 [INFO] [stdout] | [INFO] [stdout] 518 | Mutex::new(FontManager::new().expect("Failed to create legacy font manager")) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:516:48 [INFO] [stdout] | [INFO] [stdout] 516 | static LEGACY_FONT_MANAGER: OnceLock> = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::FontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:249:46 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn new(content: &str, font_manager: &FontManager) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:252:25 [INFO] [stdout] | [INFO] [stdout] 252 | typography: Typography::default(), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:262:45 [INFO] [stdout] | [INFO] [stdout] 262 | pub fn typography(mut self, typography: Typography) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:491:25 [INFO] [stdout] | [INFO] [stdout] 491 | typography: Typography::default(), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `legacy_compat::text::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:499:45 [INFO] [stdout] | [INFO] [stdout] 499 | pub fn typography(mut self, typography: Typography) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `legacy_compat::LegacyResult`: Use WebPdfResult directly [INFO] [stdout] --> src/legacy_compat/mod.rs:83:16 [INFO] [stdout] | [INFO] [stdout] 83 | let _: LegacyResult<()> = Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `legacy_compat::LegacyError`: Use WebPdfError directly [INFO] [stdout] --> src/legacy_compat/mod.rs:84:21 [INFO] [stdout] | [INFO] [stdout] 84 | let _error: LegacyError = WebPdfError::ConfigError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `legacy_compat::init_legacy_engine`: Use DocumentProcessor::new() instead [INFO] [stdout] --> src/legacy_compat/mod.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | assert!(init_legacy_engine().is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `legacy_compat::cleanup_legacy_engine`: No cleanup required in new engine [INFO] [stdout] --> src/legacy_compat/mod.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | cleanup_legacy_engine(); // Should not panic [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:48:19 [INFO] [stdout] | [INFO] [stdout] 48 | Ok(Self { processor }) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:57:19 [INFO] [stdout] | [INFO] [stdout] 57 | Ok(Self { processor }) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | self.processor.html_to_pdf(html) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | self.processor.html_css_to_pdf(html, css) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | self.processor.file_to_pdf(path) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | self.processor.clear_cache(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Pipeline::pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:125:19 [INFO] [stdout] | [INFO] [stdout] 125 | Ok(Self { pipeline }) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Pipeline::pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:134:19 [INFO] [stdout] | [INFO] [stdout] 134 | Ok(Self { pipeline }) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Pipeline::pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | self.pipeline.process_document(html, css) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Pipeline::pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | self.pipeline.clear_cache(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | builder: Config::builder(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:181:9 [INFO] [stdout] | [INFO] [stdout] 181 | self.builder = self.builder.viewport(width, height); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:181:24 [INFO] [stdout] | [INFO] [stdout] 181 | self.builder = self.builder.viewport(width, height); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | self.builder = self.builder.dpi(dpi); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:190:24 [INFO] [stdout] | [INFO] [stdout] 190 | self.builder = self.builder.dpi(dpi); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | self.builder = self.builder.default_font(font); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:199:24 [INFO] [stdout] | [INFO] [stdout] 199 | self.builder = self.builder.default_font(font); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | self.builder = self.builder.font_size(size); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:208:24 [INFO] [stdout] | [INFO] [stdout] 208 | self.builder = self.builder.font_size(size); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:217:9 [INFO] [stdout] | [INFO] [stdout] 217 | self.builder.build() [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | html_content: html.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | css_content: css.map(|s| s.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | config: EmbeddedConfig::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | validation: ValidationSettings::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:77:20 [INFO] [stdout] | [INFO] [stdout] 77 | .html(&self.html_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:79:29 [INFO] [stdout] | [INFO] [stdout] 79 | if let Some(css) = &self.css_content { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:84:36 [INFO] [stdout] | [INFO] [stdout] 84 | builder = builder.viewport(self.config.viewport); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:85:40 [INFO] [stdout] | [INFO] [stdout] 85 | builder = builder.font_family(&self.config.font_family); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:86:37 [INFO] [stdout] | [INFO] [stdout] 86 | builder = builder.font_size(self.config.font_size); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:87:34 [INFO] [stdout] | [INFO] [stdout] 87 | builder = builder.margin(self.config.margins.top); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 101 | if self.html_content.trim().is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::severity`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 103 | severity: IssueSeverity::Error, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::message`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | message: "HTML content is empty".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::location`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:105:17 [INFO] [stdout] | [INFO] [stdout] 105 | location: None, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::suggestion`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | suggestion: Some("Provide valid HTML content".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | if !self.html_content.contains('<') || !self.html_content.contains('>') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:111:49 [INFO] [stdout] | [INFO] [stdout] 111 | if !self.html_content.contains('<') || !self.html_content.contains('>') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::severity`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:113:17 [INFO] [stdout] | [INFO] [stdout] 113 | severity: IssueSeverity::Warning, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::message`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:114:17 [INFO] [stdout] | [INFO] [stdout] 114 | message: "HTML content may not contain valid markup".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::location`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | location: None, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::suggestion`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:116:17 [INFO] [stdout] | [INFO] [stdout] 116 | suggestion: Some("Ensure HTML contains valid tags".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:121:29 [INFO] [stdout] | [INFO] [stdout] 121 | if let Some(css) = &self.css_content { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::severity`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:124:21 [INFO] [stdout] | [INFO] [stdout] 124 | severity: IssueSeverity::Warning, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::message`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:125:21 [INFO] [stdout] | [INFO] [stdout] 125 | message: "CSS content is empty".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::location`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:126:21 [INFO] [stdout] | [INFO] [stdout] 126 | location: None, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::suggestion`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:127:21 [INFO] [stdout] | [INFO] [stdout] 127 | suggestion: Some("Remove empty CSS or provide valid styles".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationResult::is_valid`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | is_valid: issues.iter().all(|i| i.severity != IssueSeverity::Error), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::severity`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:133:45 [INFO] [stdout] | [INFO] [stdout] 133 | is_valid: issues.iter().all(|i| i.severity != IssueSeverity::Error), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationResult::issues`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | issues, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::html_size`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | html_size: self.html_content.len(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:144:24 [INFO] [stdout] | [INFO] [stdout] 144 | html_size: self.html_content.len(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::css_size`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | css_size: self.css_content.as_ref().map(|c| c.len()).unwrap_or(0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:145:23 [INFO] [stdout] | [INFO] [stdout] 145 | css_size: self.css_content.as_ref().map(|c| c.len()).unwrap_or(0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::estimated_pages`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | estimated_pages: 1, // Simplified estimation [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::has_css`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | has_css: self.css_content.is_some(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:147:22 [INFO] [stdout] | [INFO] [stdout] 147 | has_css: self.css_content.is_some(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::font_family`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | font_family: self.config.font_family.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:148:26 [INFO] [stdout] | [INFO] [stdout] 148 | font_family: self.config.font_family.clone(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::viewport`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | viewport: self.config.viewport, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:149:23 [INFO] [stdout] | [INFO] [stdout] 149 | viewport: self.config.viewport, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | self.config.viewport = Viewport::new( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | self.config.font_family = family.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | self.config.font_size = clamp(size, 6.0, 72.0); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | self.validation.level = level; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | html_content: None, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:205:13 [INFO] [stdout] | [INFO] [stdout] 205 | css_content: None, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | config: EmbeddedConfig::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | validation: ValidationSettings::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | self.html_content = Some(html.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:225:9 [INFO] [stdout] | [INFO] [stdout] 225 | self.css_content = Some(css.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | self.config.viewport = Viewport::new( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 246 | self.config.font_family = family.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | self.config.font_size = clamp(size, 6.0, 72.0); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | self.config.margins = Margins { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:278:9 [INFO] [stdout] | [INFO] [stdout] 278 | self.validation.level = if enable { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | self.validation.level = level; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:300:28 [INFO] [stdout] | [INFO] [stdout] 300 | let html_content = self.html_content.ok_or_else(|| WebPdfError::ValidationError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:307:32 [INFO] [stdout] | [INFO] [stdout] 307 | if let Some(ref css) = self.css_content { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:312:13 [INFO] [stdout] | [INFO] [stdout] 312 | html_content, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:313:13 [INFO] [stdout] | [INFO] [stdout] 313 | css_content: self.css_content, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:313:26 [INFO] [stdout] | [INFO] [stdout] 313 | css_content: self.css_content, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:314:13 [INFO] [stdout] | [INFO] [stdout] 314 | config: self.config, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:314:21 [INFO] [stdout] | [INFO] [stdout] 314 | config: self.config, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:315:13 [INFO] [stdout] | [INFO] [stdout] 315 | validation: self.validation, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:315:25 [INFO] [stdout] | [INFO] [stdout] 315 | validation: self.validation, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::inner`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | inner: NewFontManager::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | loaded_fonts: HashMap::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::inner`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:68:27 [INFO] [stdout] | [INFO] [stdout] 68 | let font_family = self.inner.get_font_family(&descriptor); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:69:30 [INFO] [stdout] | [INFO] [stdout] 69 | let font_id = FontId(self.loaded_fonts.len() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | self.loaded_fonts.insert(family.to_string(), FontInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | self.loaded_fonts.get(family) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | self.loaded_fonts.values().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::inner`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | self.inner.clear_caches(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | self.loaded_fonts.clear(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_family`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | self.font_family = family.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | self.font_size = clamp(size, 6.0, 72.0); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::line_height`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | self.line_height = clamp(height, 0.5, 3.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::color`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | self.color = color; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::weight`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | self.weight = weight; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_family`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | self.font_family, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | self.font_size, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::line_height`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:205:13 [INFO] [stdout] | [INFO] [stdout] 205 | self.line_height, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::color`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | self.color.to_css(), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::weight`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | self.weight.to_css(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::style`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | self.style.to_css() [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_family`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 216 | font_family: "system-ui".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:217:13 [INFO] [stdout] | [INFO] [stdout] 217 | font_size: 16.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::line_height`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:218:13 [INFO] [stdout] | [INFO] [stdout] 218 | line_height: 1.4, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::letter_spacing`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | letter_spacing: 0.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::word_spacing`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:220:13 [INFO] [stdout] | [INFO] [stdout] 220 | word_spacing: 1.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::color`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:221:13 [INFO] [stdout] | [INFO] [stdout] 221 | color: TextColor::Black, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::weight`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 222 | weight: FontWeight::Normal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::style`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:223:13 [INFO] [stdout] | [INFO] [stdout] 223 | style: FontVariant::Normal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::content`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:251:13 [INFO] [stdout] | [INFO] [stdout] 251 | content: content.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:252:13 [INFO] [stdout] | [INFO] [stdout] 252 | typography: Typography::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::bounds`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:253:13 [INFO] [stdout] | [INFO] [stdout] 253 | bounds: TextBounds::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::metrics`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:254:13 [INFO] [stdout] | [INFO] [stdout] 254 | metrics: None, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:263:9 [INFO] [stdout] | [INFO] [stdout] 263 | self.typography = typography; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::bounds`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:272:9 [INFO] [stdout] | [INFO] [stdout] 272 | self.bounds = bounds; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::content`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:282:26 [INFO] [stdout] | [INFO] [stdout] 282 | let char_count = self.content.chars().count(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:283:51 [INFO] [stdout] | [INFO] [stdout] 283 | let estimated_width = char_count as f32 * self.typography.font_size * 0.6; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:283:51 [INFO] [stdout] | [INFO] [stdout] 283 | let estimated_width = char_count as f32 * self.typography.font_size * 0.6; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::bounds`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:284:45 [INFO] [stdout] | [INFO] [stdout] 284 | let line_count = (estimated_width / self.bounds.width).ceil().max(1.0) as usize; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:285:42 [INFO] [stdout] | [INFO] [stdout] 285 | let height = line_count as f32 * self.typography.font_size * self.typography.line_height; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:285:42 [INFO] [stdout] | [INFO] [stdout] 285 | let height = line_count as f32 * self.typography.font_size * self.typography.line_height; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:285:70 [INFO] [stdout] | [INFO] [stdout] 285 | let height = line_count as f32 * self.typography.font_size * self.typography.line_height; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::line_height`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:285:70 [INFO] [stdout] | [INFO] [stdout] 285 | let height = line_count as f32 * self.typography.font_size * self.typography.line_height; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::metrics`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:287:9 [INFO] [stdout] | [INFO] [stdout] 287 | self.metrics = Some(TextMetrics { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::bounds`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:288:40 [INFO] [stdout] | [INFO] [stdout] 288 | width: estimated_width.min(self.bounds.width), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:292:23 [INFO] [stdout] | [INFO] [stdout] 292 | baseline: self.typography.font_size * 0.8, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:292:23 [INFO] [stdout] | [INFO] [stdout] 292 | baseline: self.typography.font_size * 0.8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::metrics`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:295:12 [INFO] [stdout] | [INFO] [stdout] 295 | Ok(self.metrics.as_ref().unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::metrics`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | self.metrics.as_ref() [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextStyle::typography`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:491:13 [INFO] [stdout] | [INFO] [stdout] 491 | typography: Typography::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextStyle::typography`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:500:9 [INFO] [stdout] | [INFO] [stdout] 500 | self.typography = typography; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `legacy_compat::text::TextStyle::new`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:507:15 [INFO] [stdout] | [INFO] [stdout] 507 | Self::new() [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `legacy_compat::text::FontManager::new`: Use render::text::fonts::FontManager::new() instead [INFO] [stdout] --> src/legacy_compat/text.rs:518:33 [INFO] [stdout] | [INFO] [stdout] 518 | Mutex::new(FontManager::new().expect("Failed to create legacy font manager")) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:48:19 [INFO] [stdout] | [INFO] [stdout] 48 | Ok(Self { processor }) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:57:19 [INFO] [stdout] | [INFO] [stdout] 57 | Ok(Self { processor }) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | self.processor.html_to_pdf(html) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | self.processor.html_css_to_pdf(html, css) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | self.processor.file_to_pdf(path) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Document::processor`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | self.processor.clear_cache(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Pipeline::pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:125:19 [INFO] [stdout] | [INFO] [stdout] 125 | Ok(Self { pipeline }) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Pipeline::pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:134:19 [INFO] [stdout] | [INFO] [stdout] 134 | Ok(Self { pipeline }) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Pipeline::pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | self.pipeline.process_document(html, css) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::Pipeline::pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/core.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | self.pipeline.clear_cache(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | builder: Config::builder(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:181:9 [INFO] [stdout] | [INFO] [stdout] 181 | self.builder = self.builder.viewport(width, height); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:181:24 [INFO] [stdout] | [INFO] [stdout] 181 | self.builder = self.builder.viewport(width, height); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | self.builder = self.builder.dpi(dpi); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:190:24 [INFO] [stdout] | [INFO] [stdout] 190 | self.builder = self.builder.dpi(dpi); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | self.builder = self.builder.default_font(font); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:199:24 [INFO] [stdout] | [INFO] [stdout] 199 | self.builder = self.builder.default_font(font); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | self.builder = self.builder.font_size(size); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:208:24 [INFO] [stdout] | [INFO] [stdout] 208 | self.builder = self.builder.font_size(size); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::core::LegacyConfigBuilder::builder`: Use Config::builder() instead [INFO] [stdout] --> src/legacy_compat/core.rs:217:9 [INFO] [stdout] | [INFO] [stdout] 217 | self.builder.build() [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | html_content: html.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | css_content: css.map(|s| s.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | config: EmbeddedConfig::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | validation: ValidationSettings::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:77:20 [INFO] [stdout] | [INFO] [stdout] 77 | .html(&self.html_content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:79:29 [INFO] [stdout] | [INFO] [stdout] 79 | if let Some(css) = &self.css_content { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:84:36 [INFO] [stdout] | [INFO] [stdout] 84 | builder = builder.viewport(self.config.viewport); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:85:40 [INFO] [stdout] | [INFO] [stdout] 85 | builder = builder.font_family(&self.config.font_family); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:86:37 [INFO] [stdout] | [INFO] [stdout] 86 | builder = builder.font_size(self.config.font_size); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:87:34 [INFO] [stdout] | [INFO] [stdout] 87 | builder = builder.margin(self.config.margins.top); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 101 | if self.html_content.trim().is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::severity`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 103 | severity: IssueSeverity::Error, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::message`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | message: "HTML content is empty".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::location`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:105:17 [INFO] [stdout] | [INFO] [stdout] 105 | location: None, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::suggestion`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | suggestion: Some("Provide valid HTML content".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | if !self.html_content.contains('<') || !self.html_content.contains('>') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:111:49 [INFO] [stdout] | [INFO] [stdout] 111 | if !self.html_content.contains('<') || !self.html_content.contains('>') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::severity`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:113:17 [INFO] [stdout] | [INFO] [stdout] 113 | severity: IssueSeverity::Warning, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::message`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:114:17 [INFO] [stdout] | [INFO] [stdout] 114 | message: "HTML content may not contain valid markup".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::location`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | location: None, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::suggestion`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:116:17 [INFO] [stdout] | [INFO] [stdout] 116 | suggestion: Some("Ensure HTML contains valid tags".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:121:29 [INFO] [stdout] | [INFO] [stdout] 121 | if let Some(css) = &self.css_content { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::severity`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:124:21 [INFO] [stdout] | [INFO] [stdout] 124 | severity: IssueSeverity::Warning, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::message`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:125:21 [INFO] [stdout] | [INFO] [stdout] 125 | message: "CSS content is empty".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::location`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:126:21 [INFO] [stdout] | [INFO] [stdout] 126 | location: None, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::suggestion`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:127:21 [INFO] [stdout] | [INFO] [stdout] 127 | suggestion: Some("Remove empty CSS or provide valid styles".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationResult::is_valid`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | is_valid: issues.iter().all(|i| i.severity != IssueSeverity::Error), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationIssue::severity`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:133:45 [INFO] [stdout] | [INFO] [stdout] 133 | is_valid: issues.iter().all(|i| i.severity != IssueSeverity::Error), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::ValidationResult::issues`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | issues, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::html_size`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | html_size: self.html_content.len(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:144:24 [INFO] [stdout] | [INFO] [stdout] 144 | html_size: self.html_content.len(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::css_size`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | css_size: self.css_content.as_ref().map(|c| c.len()).unwrap_or(0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:145:23 [INFO] [stdout] | [INFO] [stdout] 145 | css_size: self.css_content.as_ref().map(|c| c.len()).unwrap_or(0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::estimated_pages`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | estimated_pages: 1, // Simplified estimation [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::has_css`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | has_css: self.css_content.is_some(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:147:22 [INFO] [stdout] | [INFO] [stdout] 147 | has_css: self.css_content.is_some(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::font_family`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | font_family: self.config.font_family.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:148:26 [INFO] [stdout] | [INFO] [stdout] 148 | font_family: self.config.font_family.clone(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::DocumentMetadata::viewport`: Use document processing metrics instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | viewport: self.config.viewport, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:149:23 [INFO] [stdout] | [INFO] [stdout] 149 | viewport: self.config.viewport, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | self.config.viewport = Viewport::new( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | self.config.font_family = family.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | self.config.font_size = clamp(size, 6.0, 72.0); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | self.validation.level = level; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | html_content: None, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:205:13 [INFO] [stdout] | [INFO] [stdout] 205 | css_content: None, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | config: EmbeddedConfig::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | validation: ValidationSettings::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | self.html_content = Some(html.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:225:9 [INFO] [stdout] | [INFO] [stdout] 225 | self.css_content = Some(css.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | self.config.viewport = Viewport::new( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 246 | self.config.font_family = family.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | self.config.font_size = clamp(size, 6.0, 72.0); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | self.config.margins = Margins { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:278:9 [INFO] [stdout] | [INFO] [stdout] 278 | self.validation.level = if enable { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | self.validation.level = level; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:300:28 [INFO] [stdout] | [INFO] [stdout] 300 | let html_content = self.html_content.ok_or_else(|| WebPdfError::ValidationError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:307:32 [INFO] [stdout] | [INFO] [stdout] 307 | if let Some(ref css) = self.css_content { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::html_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:312:13 [INFO] [stdout] | [INFO] [stdout] 312 | html_content, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:313:13 [INFO] [stdout] | [INFO] [stdout] 313 | css_content: self.css_content, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::css_content`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:313:26 [INFO] [stdout] | [INFO] [stdout] 313 | css_content: self.css_content, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:314:13 [INFO] [stdout] | [INFO] [stdout] 314 | config: self.config, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::config`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:314:21 [INFO] [stdout] | [INFO] [stdout] 314 | config: self.config, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocument::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:315:13 [INFO] [stdout] | [INFO] [stdout] 315 | validation: self.validation, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::embedded::EmbeddedDocumentBuilder::validation`: Use DocumentBuilder instead [INFO] [stdout] --> src/legacy_compat/embedded.rs:315:25 [INFO] [stdout] | [INFO] [stdout] 315 | validation: self.validation, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::inner`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | inner: NewFontManager::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | loaded_fonts: HashMap::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::inner`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:68:27 [INFO] [stdout] | [INFO] [stdout] 68 | let font_family = self.inner.get_font_family(&descriptor); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:69:30 [INFO] [stdout] | [INFO] [stdout] 69 | let font_id = FontId(self.loaded_fonts.len() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | self.loaded_fonts.insert(family.to_string(), FontInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | self.loaded_fonts.get(family) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | self.loaded_fonts.values().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::inner`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | self.inner.clear_caches(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::FontManager::loaded_fonts`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> src/legacy_compat/text.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | self.loaded_fonts.clear(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_family`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | self.font_family = family.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | self.font_size = clamp(size, 6.0, 72.0); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::line_height`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | self.line_height = clamp(height, 0.5, 3.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::color`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | self.color = color; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::weight`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | self.weight = weight; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_family`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | self.font_family, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | self.font_size, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::line_height`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:205:13 [INFO] [stdout] | [INFO] [stdout] 205 | self.line_height, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::color`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | self.color.to_css(), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::weight`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | self.weight.to_css(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::style`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | self.style.to_css() [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_family`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 216 | font_family: "system-ui".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:217:13 [INFO] [stdout] | [INFO] [stdout] 217 | font_size: 16.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::line_height`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:218:13 [INFO] [stdout] | [INFO] [stdout] 218 | line_height: 1.4, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::letter_spacing`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | letter_spacing: 0.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::word_spacing`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:220:13 [INFO] [stdout] | [INFO] [stdout] 220 | word_spacing: 1.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::color`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:221:13 [INFO] [stdout] | [INFO] [stdout] 221 | color: TextColor::Black, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::weight`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 222 | weight: FontWeight::Normal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::style`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:223:13 [INFO] [stdout] | [INFO] [stdout] 223 | style: FontVariant::Normal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::content`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:251:13 [INFO] [stdout] | [INFO] [stdout] 251 | content: content.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:252:13 [INFO] [stdout] | [INFO] [stdout] 252 | typography: Typography::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::bounds`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:253:13 [INFO] [stdout] | [INFO] [stdout] 253 | bounds: TextBounds::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::metrics`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:254:13 [INFO] [stdout] | [INFO] [stdout] 254 | metrics: None, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:263:9 [INFO] [stdout] | [INFO] [stdout] 263 | self.typography = typography; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::bounds`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:272:9 [INFO] [stdout] | [INFO] [stdout] 272 | self.bounds = bounds; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::content`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:282:26 [INFO] [stdout] | [INFO] [stdout] 282 | let char_count = self.content.chars().count(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:283:51 [INFO] [stdout] | [INFO] [stdout] 283 | let estimated_width = char_count as f32 * self.typography.font_size * 0.6; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:283:51 [INFO] [stdout] | [INFO] [stdout] 283 | let estimated_width = char_count as f32 * self.typography.font_size * 0.6; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::bounds`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:284:45 [INFO] [stdout] | [INFO] [stdout] 284 | let line_count = (estimated_width / self.bounds.width).ceil().max(1.0) as usize; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:285:42 [INFO] [stdout] | [INFO] [stdout] 285 | let height = line_count as f32 * self.typography.font_size * self.typography.line_height; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:285:42 [INFO] [stdout] | [INFO] [stdout] 285 | let height = line_count as f32 * self.typography.font_size * self.typography.line_height; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:285:70 [INFO] [stdout] | [INFO] [stdout] 285 | let height = line_count as f32 * self.typography.font_size * self.typography.line_height; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::line_height`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:285:70 [INFO] [stdout] | [INFO] [stdout] 285 | let height = line_count as f32 * self.typography.font_size * self.typography.line_height; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::metrics`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:287:9 [INFO] [stdout] | [INFO] [stdout] 287 | self.metrics = Some(TextMetrics { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::bounds`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:288:40 [INFO] [stdout] | [INFO] [stdout] 288 | width: estimated_width.min(self.bounds.width), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::typography`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:292:23 [INFO] [stdout] | [INFO] [stdout] 292 | baseline: self.typography.font_size * 0.8, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::Typography::font_size`: Use DocumentBuilder font settings instead [INFO] [stdout] --> src/legacy_compat/text.rs:292:23 [INFO] [stdout] | [INFO] [stdout] 292 | baseline: self.typography.font_size * 0.8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::metrics`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:295:12 [INFO] [stdout] | [INFO] [stdout] 295 | Ok(self.metrics.as_ref().unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextLayout::metrics`: Text layout is handled automatically in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | self.metrics.as_ref() [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextStyle::typography`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:491:13 [INFO] [stdout] | [INFO] [stdout] 491 | typography: Typography::default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `legacy_compat::text::TextStyle::typography`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:500:9 [INFO] [stdout] | [INFO] [stdout] 500 | self.typography = typography; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `legacy_compat::text::TextStyle::new`: Use CSS styles in the new system [INFO] [stdout] --> src/legacy_compat/text.rs:507:15 [INFO] [stdout] | [INFO] [stdout] 507 | Self::new() [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `legacy_compat::text::FontManager::new`: Use render::text::fonts::FontManager::new() instead [INFO] [stdout] --> src/legacy_compat/text.rs:518:33 [INFO] [stdout] | [INFO] [stdout] 518 | Mutex::new(FontManager::new().expect("Failed to create legacy font manager")) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ancestor` [INFO] [stdout] --> src/parser/selector.rs:254:38 [INFO] [stdout] | [INFO] [stdout] 254 | SelectorType::Descendant(ancestor, descendant) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ancestor` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `element_part` is never read [INFO] [stdout] --> src/parser/mod.rs:312:32 [INFO] [stdout] | [INFO] [stdout] 312 | let mut element_part = word; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `element_id` [INFO] [stdout] --> src/style/cascade.rs:240:9 [INFO] [stdout] | [INFO] [stdout] 240 | element_id: ElementId, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_element_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `element_info` [INFO] [stdout] --> src/style/cascade.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 323 | element_info: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_element_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `element_part` is never read [INFO] [stdout] --> src/style/cascade.rs:445:36 [INFO] [stdout] | [INFO] [stdout] 445 | let mut element_part = word; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `document` [INFO] [stdout] --> src/style/computed.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | document: &crate::parser::ParsedDocument, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/style/computed.rs:344:9 [INFO] [stdout] | [INFO] [stdout] 344 | context: &StyleContext, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/style/computed.rs:386:9 [INFO] [stdout] | [INFO] [stdout] 386 | context: &StyleContext, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/layout/box_model.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | _ => *val, // Default to pixels [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/layout/box_model.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 326 | LengthUnit::Px => *val, [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 327 | LengthUnit::Em => *val * self.default_font_size, [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 328 | LengthUnit::Rem => *val * self.default_font_size, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 329 | LengthUnit::Pt => *val * 1.33, // Convert pt to px [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 334 | _ => *val, // Default to pixels [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `element_id` [INFO] [stdout] --> src/render/pdf.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | let element_id = layout_tree [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_element_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/render/pdf.rs:500:17 [INFO] [stdout] | [INFO] [stdout] 499 | PropertyValue::String(s) => s.parse::().ok(), [INFO] [stdout] | ------------------------ matches all the relevant values [INFO] [stdout] 500 | PropertyValue::String(s) => match s.as_str() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/render/pdf.rs:587:35 [INFO] [stdout] | [INFO] [stdout] 587 | fn create_document(&mut self, config: &RenderConfig) -> WebPdfResult { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ancestor` [INFO] [stdout] --> src/parser/selector.rs:254:38 [INFO] [stdout] | [INFO] [stdout] 254 | SelectorType::Descendant(ancestor, descendant) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ancestor` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `root_element_id` [INFO] [stdout] --> src/render/pdf.rs:612:13 [INFO] [stdout] | [INFO] [stdout] 612 | let root_element_id = layout_tree [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_element_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `position` [INFO] [stdout] --> src/render/graphics/images.rs:67:81 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn draw_image_at(&self, surface: &mut Surface<'_>, image: &RasterImage, position: Point) -> WebPdfResult<()> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `position` [INFO] [stdout] --> src/render/graphics/images.rs:81:85 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn draw_image_scaled(&self, surface: &mut Surface<'_>, image: &RasterImage, position: Point, scale: f32) -> WebPdfResult<()> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `element_part` is never read [INFO] [stdout] --> src/parser/mod.rs:312:32 [INFO] [stdout] | [INFO] [stdout] 312 | let mut element_part = word; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `element_id` [INFO] [stdout] --> src/style/cascade.rs:240:9 [INFO] [stdout] | [INFO] [stdout] 240 | element_id: ElementId, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_element_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `element_info` [INFO] [stdout] --> src/style/cascade.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 323 | element_info: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_element_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `element_part` is never read [INFO] [stdout] --> src/style/cascade.rs:445:36 [INFO] [stdout] | [INFO] [stdout] 445 | let mut element_part = word; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `document` [INFO] [stdout] --> src/style/computed.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | document: &crate::parser::ParsedDocument, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `x_offset` is assigned to, but never used [INFO] [stdout] --> src/render/text/glyphs.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | let mut x_offset = 0.0; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_x_offset` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `x_offset` is never read [INFO] [stdout] --> src/render/text/glyphs.rs:155:13 [INFO] [stdout] | [INFO] [stdout] 155 | x_offset += glyph.advance; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/style/computed.rs:344:9 [INFO] [stdout] | [INFO] [stdout] 344 | context: &StyleContext, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> src/style/computed.rs:386:9 [INFO] [stdout] | [INFO] [stdout] 386 | context: &StyleContext, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `resource_id` [INFO] [stdout] --> src/document/context.rs:434:32 [INFO] [stdout] | [INFO] [stdout] 434 | pub fn get_resource(&self, resource_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resource_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `width` [INFO] [stdout] --> src/legacy_compat/core.rs:88:36 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn set_viewport(&mut self, width: f32, height: f32) -> WebPdfResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `height` [INFO] [stdout] --> src/legacy_compat/core.rs:88:48 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn set_viewport(&mut self, width: f32, height: f32) -> WebPdfResult<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/layout/box_model.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | _ => *val, // Default to pixels [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/layout/box_model.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 326 | LengthUnit::Px => *val, [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 327 | LengthUnit::Em => *val * self.default_font_size, [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 328 | LengthUnit::Rem => *val * self.default_font_size, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 329 | LengthUnit::Pt => *val * 1.33, // Convert pt to px [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 334 | _ => *val, // Default to pixels [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `font_manager` [INFO] [stdout] --> src/legacy_compat/text.rs:249:31 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn new(content: &str, font_manager: &FontManager) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_manager` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `element_id` [INFO] [stdout] --> src/render/pdf.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | let element_id = layout_tree [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_element_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/render/pdf.rs:500:17 [INFO] [stdout] | [INFO] [stdout] 499 | PropertyValue::String(s) => s.parse::().ok(), [INFO] [stdout] | ------------------------ matches all the relevant values [INFO] [stdout] 500 | PropertyValue::String(s) => match s.as_str() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/render/pdf.rs:587:35 [INFO] [stdout] | [INFO] [stdout] 587 | fn create_document(&mut self, config: &RenderConfig) -> WebPdfResult { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `root_element_id` [INFO] [stdout] --> src/render/pdf.rs:612:13 [INFO] [stdout] | [INFO] [stdout] 612 | let root_element_id = layout_tree [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_element_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `position` [INFO] [stdout] --> src/render/graphics/images.rs:67:81 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn draw_image_at(&self, surface: &mut Surface<'_>, image: &RasterImage, position: Point) -> WebPdfResult<()> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `position` [INFO] [stdout] --> src/render/graphics/images.rs:81:85 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn draw_image_scaled(&self, surface: &mut Surface<'_>, image: &RasterImage, position: Point, scale: f32) -> WebPdfResult<()> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/utils/diagnostics.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Timer { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 26 | /// Operation name being timed [INFO] [stdout] 27 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/utils/diagnostics.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct Profiler { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 36 | /// Session name [INFO] [stdout] 37 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/parser/selector.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct SelectorMatcher { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 26 | /// Configuration for selector matching [INFO] [stdout] 27 | config: ParserConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config` and `specificity_calc` are never read [INFO] [stdout] --> src/style/cascade.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct CascadeEngine { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 15 | /// Engine configuration [INFO] [stdout] 16 | config: StyleConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 17 | /// Specificity calculator [INFO] [stdout] 18 | specificity_calc: SpecificityCalculator, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CascadeEngine` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/style/computed.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct ComputedStyleSystem { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 15 | /// Configuration for style computation [INFO] [stdout] 16 | config: StyleConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ComputedStyleSystem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/style/tree.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct StyleTreeBuilder { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 18 | /// Configuration for tree building [INFO] [stdout] 19 | config: StyleConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StyleTreeBuilder` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `extract_attributes` is never used [INFO] [stdout] --> src/layout/engine.rs:492:8 [INFO] [stdout] | [INFO] [stdout] 84 | impl LayoutEngine { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 492 | fn extract_attributes(&self, _attrs: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `style` and `parent_context` are never read [INFO] [stdout] --> src/render/pdf.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 84 | struct NodeRenderContext { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 90 | style: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 91 | /// Parent context for inheritance [INFO] [stdout] 92 | parent_context: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NodeRenderContext` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `context` is never read [INFO] [stdout] --> src/document/mod.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct Document { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 114 | context: DocumentContext, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Document` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_resource` is never used [INFO] [stdout] --> src/document/context.rs:584:8 [INFO] [stdout] | [INFO] [stdout] 511 | impl ResourceManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 584 | fn get_resource(&mut self, resource_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/document/api.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct DocumentProcessor { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 62 | config: ProcessorConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DocumentProcessor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/diagnostics.rs:473:14 [INFO] [stdout] | [INFO] [stdout] 473 | unsafe { GLOBAL_METRICS.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/diagnostics.rs:478:14 [INFO] [stdout] | [INFO] [stdout] 478 | unsafe { GLOBAL_MEMORY_TRACKER.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/style/mod.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | self.cache.insert(cache_key, computed_styles.clone(), 1024); // Approximate size in bytes [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 200 | let _ = self.cache.insert(cache_key, computed_styles.clone(), 1024); // Approximate size in bytes [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/layout/engine.rs:479:17 [INFO] [stdout] | [INFO] [stdout] 479 | layout_tree.cache.insert(cache_key, layout_result, 1024); // Rough size estimate [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 479 | let _ = layout_tree.cache.insert(cache_key, layout_result, 1024); // Rough size estimate [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/document/context.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 543 | self.fonts.insert(family_name.to_string(), font_resource, 1024); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 543 | let _ = self.fonts.insert(family_name.to_string(), font_resource, 1024); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/document/context.rs:561:9 [INFO] [stdout] | [INFO] [stdout] 561 | self.images.insert(image_id.clone(), image_resource, 1024); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 561 | let _ = self.images.insert(image_id.clone(), image_resource, 1024); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/document/context.rs:578:9 [INFO] [stdout] | [INFO] [stdout] 578 | self.external.insert(resource_id.clone(), external_resource, 512); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 578 | let _ = self.external.insert(resource_id.clone(), external_resource, 512); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `measurer` [INFO] [stdout] --> src/render/text/measurement.rs:336:13 [INFO] [stdout] | [INFO] [stdout] 336 | let measurer = TextMeasurer::new(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_measurer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `x_offset` is assigned to, but never used [INFO] [stdout] --> src/render/text/glyphs.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | let mut x_offset = 0.0; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_x_offset` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `x_offset` is never read [INFO] [stdout] --> src/render/text/glyphs.rs:155:13 [INFO] [stdout] | [INFO] [stdout] 155 | x_offset += glyph.advance; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `renderer` [INFO] [stdout] --> src/render/text/glyphs.rs:339:13 [INFO] [stdout] | [INFO] [stdout] 339 | let renderer = GlyphRenderer::new(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_renderer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `renderer` [INFO] [stdout] --> src/render/text/mod.rs:262:13 [INFO] [stdout] | [INFO] [stdout] 262 | let renderer = TextRenderer::new(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_renderer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `resource_id` [INFO] [stdout] --> src/document/context.rs:434:32 [INFO] [stdout] | [INFO] [stdout] 434 | pub fn get_resource(&self, resource_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resource_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `width` [INFO] [stdout] --> src/legacy_compat/core.rs:88:36 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn set_viewport(&mut self, width: f32, height: f32) -> WebPdfResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `height` [INFO] [stdout] --> src/legacy_compat/core.rs:88:48 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn set_viewport(&mut self, width: f32, height: f32) -> WebPdfResult<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `font_manager` [INFO] [stdout] --> src/legacy_compat/text.rs:249:31 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn new(content: &str, font_manager: &FontManager) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_manager` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DocumentBuilder` [INFO] [stdout] --> tests/test_utils.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use webpdf::document::{DocumentProcessor, DocumentBuilder}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DocumentBuilder` [INFO] [stdout] --> tests/test_utils.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use webpdf::document::{DocumentProcessor, DocumentBuilder}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/utils/diagnostics.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Timer { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 26 | /// Operation name being timed [INFO] [stdout] 27 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/utils/diagnostics.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct Profiler { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 36 | /// Session name [INFO] [stdout] 37 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/parser/selector.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct SelectorMatcher { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 26 | /// Configuration for selector matching [INFO] [stdout] 27 | config: ParserConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config` and `specificity_calc` are never read [INFO] [stdout] --> src/style/cascade.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct CascadeEngine { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 15 | /// Engine configuration [INFO] [stdout] 16 | config: StyleConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 17 | /// Specificity calculator [INFO] [stdout] 18 | specificity_calc: SpecificityCalculator, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CascadeEngine` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/style/computed.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct ComputedStyleSystem { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 15 | /// Configuration for style computation [INFO] [stdout] 16 | config: StyleConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ComputedStyleSystem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/style/tree.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct StyleTreeBuilder { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 18 | /// Configuration for tree building [INFO] [stdout] 19 | config: StyleConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StyleTreeBuilder` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `extract_attributes` is never used [INFO] [stdout] --> src/layout/engine.rs:492:8 [INFO] [stdout] | [INFO] [stdout] 84 | impl LayoutEngine { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 492 | fn extract_attributes(&self, _attrs: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `style` and `parent_context` are never read [INFO] [stdout] --> src/render/pdf.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 84 | struct NodeRenderContext { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 90 | style: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 91 | /// Parent context for inheritance [INFO] [stdout] 92 | parent_context: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NodeRenderContext` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `context` is never read [INFO] [stdout] --> src/document/mod.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct Document { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 114 | context: DocumentContext, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Document` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_resource` is never used [INFO] [stdout] --> src/document/context.rs:584:8 [INFO] [stdout] | [INFO] [stdout] 511 | impl ResourceManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 584 | fn get_resource(&mut self, resource_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/document/api.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct DocumentProcessor { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 62 | config: ProcessorConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DocumentProcessor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/diagnostics.rs:473:14 [INFO] [stdout] | [INFO] [stdout] 473 | unsafe { GLOBAL_METRICS.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/diagnostics.rs:478:14 [INFO] [stdout] | [INFO] [stdout] 478 | unsafe { GLOBAL_MEMORY_TRACKER.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/style/mod.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | self.cache.insert(cache_key, computed_styles.clone(), 1024); // Approximate size in bytes [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 200 | let _ = self.cache.insert(cache_key, computed_styles.clone(), 1024); // Approximate size in bytes [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/layout/engine.rs:479:17 [INFO] [stdout] | [INFO] [stdout] 479 | layout_tree.cache.insert(cache_key, layout_result, 1024); // Rough size estimate [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 479 | let _ = layout_tree.cache.insert(cache_key, layout_result, 1024); // Rough size estimate [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `WebPdfError` and `WebPdfResult` [INFO] [stdout] --> tests/migration_tests.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | WebPdfResult, WebPdfError [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/document/context.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 543 | self.fonts.insert(family_name.to_string(), font_resource, 1024); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 543 | let _ = self.fonts.insert(family_name.to_string(), font_resource, 1024); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/document/context.rs:561:9 [INFO] [stdout] | [INFO] [stdout] 561 | self.images.insert(image_id.clone(), image_resource, 1024); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 561 | let _ = self.images.insert(image_id.clone(), image_resource, 1024); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EmbeddedDocument` [INFO] [stdout] --> tests/migration_tests.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | embedded::{EmbeddedDocument, EmbeddedDocumentBuilder}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/document/context.rs:578:9 [INFO] [stdout] | [INFO] [stdout] 578 | self.external.insert(resource_id.clone(), external_resource, 512); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 578 | let _ = self.external.insert(resource_id.clone(), external_resource, 512); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DocumentBuilder` [INFO] [stdout] --> tests/test_utils.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use webpdf::document::{DocumentProcessor, DocumentBuilder}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::Document`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> tests/migration_tests.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | core::{Document as LegacyDocument, Pipeline as LegacyPipeline, html_to_pdf as legacy_html_to_pdf}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::Pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> tests/migration_tests.rs:13:40 [INFO] [stdout] | [INFO] [stdout] 13 | core::{Document as LegacyDocument, Pipeline as LegacyPipeline, html_to_pdf as legacy_html_to_pdf}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `webpdf::legacy_compat::core::html_to_pdf`: Use DocumentBuilder::new().html().build() instead [INFO] [stdout] --> tests/migration_tests.rs:13:68 [INFO] [stdout] | [INFO] [stdout] 13 | core::{Document as LegacyDocument, Pipeline as LegacyPipeline, html_to_pdf as legacy_html_to_pdf}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> tests/migration_tests.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | embedded::{EmbeddedDocument, EmbeddedDocumentBuilder}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::EmbeddedDocumentBuilder`: Use DocumentBuilder instead [INFO] [stdout] --> tests/migration_tests.rs:14:34 [INFO] [stdout] | [INFO] [stdout] 14 | embedded::{EmbeddedDocument, EmbeddedDocumentBuilder}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::LegacyFontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> tests/migration_tests.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | text::{FontManager as LegacyFontManager, Typography, TextColor, FontWeight} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> tests/migration_tests.rs:15:46 [INFO] [stdout] | [INFO] [stdout] 15 | text::{FontManager as LegacyFontManager, Typography, TextColor, FontWeight} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DocumentBuilder` [INFO] [stdout] --> tests/test_utils.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use webpdf::document::{DocumentProcessor, DocumentBuilder}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DocumentBuilder` [INFO] [stdout] --> tests/test_utils.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use webpdf::document::{DocumentProcessor, DocumentBuilder}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `webpdf::legacy_compat::core::html_to_pdf`: Use DocumentBuilder::new().html().build() instead [INFO] [stdout] --> examples/simple_test.rs:4:34 [INFO] [stdout] | [INFO] [stdout] 4 | use webpdf::legacy_compat::core::html_to_pdf; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `webpdf::legacy_compat::core::html_to_pdf`: Use DocumentBuilder::new().html().build() instead [INFO] [stdout] --> examples/simple_test.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | match html_to_pdf(simple_html) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `times_id` [INFO] [stdout] --> tests/migration_tests.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | let times_id = legacy_font_mgr.load_font("Times New Roman") [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_times_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arial_descriptor` [INFO] [stdout] --> tests/migration_tests.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | let arial_descriptor = new_mgr.create_font_stack("Arial"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arial_descriptor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `times_descriptor` [INFO] [stdout] --> tests/migration_tests.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | let times_descriptor = new_mgr.create_font_stack("Times New Roman"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_times_descriptor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `legacy_invalid` [INFO] [stdout] --> tests/migration_tests.rs:278:9 [INFO] [stdout] | [INFO] [stdout] 278 | let legacy_invalid = legacy_doc.process_html(""); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_legacy_invalid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `new_invalid` [INFO] [stdout] --> tests/migration_tests.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | let new_invalid = new_processor.html_to_pdf(""); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_invalid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved imports `super::ValidationResult`, `super::ExampleValidator` [INFO] [stdout] --> examples/validation/runner.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | ValidationResult, ExampleValidator, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ no `ExampleValidator` in the root [INFO] [stdout] | | [INFO] [stdout] | no `ValidationResult` in the root [INFO] [stdout] | help: a similar name exists in the module: `ValidationRunner` [INFO] [stdout] | [INFO] [stdout] = help: consider importing this struct instead: [INFO] [stdout] webpdf::legacy_compat::embedded::ValidationResult [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CssParser`, `CssRule`, `Declaration`, `HtmlParser`, `ParserConfig`, `StyleOrigin`, and `Stylesheet` [INFO] [stdout] --> tests/style_tests.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use webpdf::parser::{HtmlParser, CssParser, ParserConfig, Stylesheet, StyleOrigin, CssRule, Declaration}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ElementId`, `StyleContext`, and `StyleStage` [INFO] [stdout] --> tests/style_tests.rs:7:34 [INFO] [stdout] | [INFO] [stdout] 7 | use webpdf::style::{StyleEngine, ElementId, StyleContext, StyleStage}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CascadeEngine` [INFO] [stdout] --> tests/style_tests.rs:21:57 [INFO] [stdout] | [INFO] [stdout] 21 | use webpdf::style::cascade::{SpecificityCalculator, CascadeEngine}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ColorValue` [INFO] [stdout] --> tests/style_tests.rs:55:73 [INFO] [stdout] | [INFO] [stdout] 55 | use webpdf::style::computed::{PropertyValueResolver, PropertyValue, ColorValue, LengthUnit}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ColorValue` [INFO] [stdout] --> tests/style_tests.rs:253:72 [INFO] [stdout] | [INFO] [stdout] 253 | use webpdf::style::computed::{DefaultValueProvider, PropertyValue, ColorValue, LengthUnit}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufReader` [INFO] [stdout] --> examples/validation/performance_check.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io::{BufRead, BufReader}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ValidationConfig` [INFO] [stdout] --> examples/validation/main.rs:14:32 [INFO] [stdout] | [INFO] [stdout] 14 | use runner::{ValidationRunner, ValidationConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `expected_elements` and `description` are never read [INFO] [stdout] --> tests/test_utils.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct TestDocument { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub expected_elements: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | pub expected_pages: usize, [INFO] [stdout] 18 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TestDocument` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `memory_usage`, `document_size`, and `pdf_size` are never read [INFO] [stdout] --> tests/test_utils.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PerformanceResult { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub memory_usage: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 27 | pub success: bool, [INFO] [stdout] 28 | pub document_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 29 | pub pdf_size: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PerformanceResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestProcessor` is never constructed [INFO] [stdout] --> tests/test_utils.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct TestProcessor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> tests/test_utils.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl TestProcessor { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 111 | /// Create a new test processor [INFO] [stdout] 112 | pub fn new() -> WebPdfResult { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn with_config(config: Config) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn process_with_measurement(&mut self, test_doc: &TestDocument) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | fn get_memory_usage(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn performance_results(&self) -> &[PerformanceResult] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn clear_results(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn metrics(&self) -> &PipelineMetrics { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `assert_performance_bounds` and `assert_pipeline_metrics` are never used [INFO] [stdout] --> tests/test_utils.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 181 | impl TestAssertions { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] 182 | /// Assert that performance is within acceptable bounds [INFO] [stdout] 183 | pub fn assert_performance_bounds(result: &PerformanceResult, max_duration: Duration, max_memory: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn assert_pipeline_metrics(metrics: &PipelineMetrics) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_test_config` is never used [INFO] [stdout] --> tests/test_utils.rs:229:8 [INFO] [stdout] | [INFO] [stdout] 229 | pub fn create_test_config(viewport_width: f32, viewport_height: f32, dpi: f32) -> Config { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `minimal_test_document` is never used [INFO] [stdout] --> tests/test_utils.rs:264:8 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn minimal_test_document() -> TestDocument { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:243:15 [INFO] [stdout] | [INFO] [stdout] 243 | pub const PARSING_TARGET: Duration = Duration::from_millis(10); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STYLING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:244:15 [INFO] [stdout] | [INFO] [stdout] 244 | pub const STYLING_TARGET: Duration = Duration::from_millis(5); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LAYOUT_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:245:15 [INFO] [stdout] | [INFO] [stdout] 245 | pub const LAYOUT_TARGET: Duration = Duration::from_millis(20); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RENDERING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:246:15 [INFO] [stdout] | [INFO] [stdout] 246 | pub const RENDERING_TARGET: Duration = Duration::from_millis(50); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `END_TO_END_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:247:15 [INFO] [stdout] | [INFO] [stdout] 247 | pub const END_TO_END_TARGET: Duration = Duration::from_millis(100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MEMORY_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:249:15 [INFO] [stdout] | [INFO] [stdout] 249 | pub const MEMORY_TARGET: usize = 50 * 1024 * 1024; // 50MB [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SIMPLE_DOC_MEMORY` is never used [INFO] [stdout] --> tests/test_utils.rs:250:15 [INFO] [stdout] | [INFO] [stdout] 250 | pub const SIMPLE_DOC_MEMORY: usize = 5 * 1024 * 1024; // 5MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMPLEX_DOC_MEMORY` is never used [INFO] [stdout] --> tests/test_utils.rs:251:15 [INFO] [stdout] | [INFO] [stdout] 251 | pub const COMPLEX_DOC_MEMORY: usize = 20 * 1024 * 1024; // 20MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `webpdf` [INFO] [stdout] --> tests/integration_tests.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use webpdf::*; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `all_successful` is assigned to, but never used [INFO] [stdout] --> tests/integration_tests.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | let mut all_successful = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_all_successful` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `all_successful` is never read [INFO] [stdout] --> tests/integration_tests.rs:168:21 [INFO] [stdout] | [INFO] [stdout] 168 | all_successful = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `expected_elements` and `description` are never read [INFO] [stdout] --> tests/test_utils.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct TestDocument { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub expected_elements: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | pub expected_pages: usize, [INFO] [stdout] 18 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TestDocument` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `document_size` is never read [INFO] [stdout] --> tests/test_utils.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PerformanceResult { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | pub document_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PerformanceResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `assert_valid_pdf` is never used [INFO] [stdout] --> tests/test_utils.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 181 | impl TestAssertions { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn assert_valid_pdf(pdf_data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `minimal_test_document` is never used [INFO] [stdout] --> tests/test_utils.rs:264:8 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn minimal_test_document() -> TestDocument { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:243:15 [INFO] [stdout] | [INFO] [stdout] 243 | pub const PARSING_TARGET: Duration = Duration::from_millis(10); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STYLING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:244:15 [INFO] [stdout] | [INFO] [stdout] 244 | pub const STYLING_TARGET: Duration = Duration::from_millis(5); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LAYOUT_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:245:15 [INFO] [stdout] | [INFO] [stdout] 245 | pub const LAYOUT_TARGET: Duration = Duration::from_millis(20); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RENDERING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:246:15 [INFO] [stdout] | [INFO] [stdout] 246 | pub const RENDERING_TARGET: Duration = Duration::from_millis(50); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MEMORY_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:249:15 [INFO] [stdout] | [INFO] [stdout] 249 | pub const MEMORY_TARGET: usize = 50 * 1024 * 1024; // 50MB [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DocumentBuilder` [INFO] [stdout] --> tests/test_utils.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use webpdf::document::{DocumentProcessor, DocumentBuilder}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> benches/performance_benchmarks.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `expected_elements` and `description` are never read [INFO] [stdout] --> tests/test_utils.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct TestDocument { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub expected_elements: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | pub expected_pages: usize, [INFO] [stdout] 18 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TestDocument` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `memory_usage`, `document_size`, and `pdf_size` are never read [INFO] [stdout] --> tests/test_utils.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PerformanceResult { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub memory_usage: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 27 | pub success: bool, [INFO] [stdout] 28 | pub document_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 29 | pub pdf_size: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PerformanceResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestProcessor` is never constructed [INFO] [stdout] --> tests/test_utils.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct TestProcessor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> tests/test_utils.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl TestProcessor { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 111 | /// Create a new test processor [INFO] [stdout] 112 | pub fn new() -> WebPdfResult { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn with_config(config: Config) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn process_with_measurement(&mut self, test_doc: &TestDocument) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | fn get_memory_usage(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn performance_results(&self) -> &[PerformanceResult] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn clear_results(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn metrics(&self) -> &PipelineMetrics { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `assert_performance_bounds` and `assert_pipeline_metrics` are never used [INFO] [stdout] --> tests/test_utils.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 181 | impl TestAssertions { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] 182 | /// Assert that performance is within acceptable bounds [INFO] [stdout] 183 | pub fn assert_performance_bounds(result: &PerformanceResult, max_duration: Duration, max_memory: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn assert_pipeline_metrics(metrics: &PipelineMetrics) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `minimal_test_document` is never used [INFO] [stdout] --> tests/test_utils.rs:264:8 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn minimal_test_document() -> TestDocument { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:243:15 [INFO] [stdout] | [INFO] [stdout] 243 | pub const PARSING_TARGET: Duration = Duration::from_millis(10); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STYLING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:244:15 [INFO] [stdout] | [INFO] [stdout] 244 | pub const STYLING_TARGET: Duration = Duration::from_millis(5); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LAYOUT_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:245:15 [INFO] [stdout] | [INFO] [stdout] 245 | pub const LAYOUT_TARGET: Duration = Duration::from_millis(20); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RENDERING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:246:15 [INFO] [stdout] | [INFO] [stdout] 246 | pub const RENDERING_TARGET: Duration = Duration::from_millis(50); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `END_TO_END_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:247:15 [INFO] [stdout] | [INFO] [stdout] 247 | pub const END_TO_END_TARGET: Duration = Duration::from_millis(100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MEMORY_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:249:15 [INFO] [stdout] | [INFO] [stdout] 249 | pub const MEMORY_TARGET: usize = 50 * 1024 * 1024; // 50MB [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SIMPLE_DOC_MEMORY` is never used [INFO] [stdout] --> tests/test_utils.rs:250:15 [INFO] [stdout] | [INFO] [stdout] 250 | pub const SIMPLE_DOC_MEMORY: usize = 5 * 1024 * 1024; // 5MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMPLEX_DOC_MEMORY` is never used [INFO] [stdout] --> tests/test_utils.rs:251:15 [INFO] [stdout] | [INFO] [stdout] 251 | pub const COMPLEX_DOC_MEMORY: usize = 20 * 1024 * 1024; // 20MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebPdfResult` [INFO] [stdout] --> tests/legacy_compat_tests.rs:11:22 [INFO] [stdout] | [INFO] [stdout] 11 | use webpdf::{Config, WebPdfResult}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::Document`: Use DocumentProcessor or DocumentBuilder instead [INFO] [stdout] --> tests/legacy_compat_tests.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | core::{Document, Pipeline, LegacyConfigBuilder, html_to_pdf, html_css_to_pdf}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::Pipeline`: Use DocumentPipeline or DocumentBuilder instead [INFO] [stdout] --> tests/legacy_compat_tests.rs:7:22 [INFO] [stdout] | [INFO] [stdout] 7 | core::{Document, Pipeline, LegacyConfigBuilder, html_to_pdf, html_css_to_pdf}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::core::LegacyConfigBuilder`: Use Config::builder() instead [INFO] [stdout] --> tests/legacy_compat_tests.rs:7:32 [INFO] [stdout] | [INFO] [stdout] 7 | core::{Document, Pipeline, LegacyConfigBuilder, html_to_pdf, html_css_to_pdf}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `webpdf::legacy_compat::core::html_to_pdf`: Use DocumentBuilder::new().html().build() instead [INFO] [stdout] --> tests/legacy_compat_tests.rs:7:53 [INFO] [stdout] | [INFO] [stdout] 7 | core::{Document, Pipeline, LegacyConfigBuilder, html_to_pdf, html_css_to_pdf}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `webpdf::legacy_compat::core::html_css_to_pdf`: Use DocumentBuilder::new().html().css().build() instead [INFO] [stdout] --> tests/legacy_compat_tests.rs:7:66 [INFO] [stdout] | [INFO] [stdout] 7 | core::{Document, Pipeline, LegacyConfigBuilder, html_to_pdf, html_css_to_pdf}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::EmbeddedDocument`: Use DocumentBuilder instead [INFO] [stdout] --> tests/legacy_compat_tests.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | embedded::{EmbeddedDocument, EmbeddedDocumentBuilder, ValidationLevel}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::EmbeddedDocumentBuilder`: Use DocumentBuilder instead [INFO] [stdout] --> tests/legacy_compat_tests.rs:8:34 [INFO] [stdout] | [INFO] [stdout] 8 | embedded::{EmbeddedDocument, EmbeddedDocumentBuilder, ValidationLevel}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated enum `webpdf::legacy_compat::ValidationLevel`: Validation is always enabled in the new architecture [INFO] [stdout] --> tests/legacy_compat_tests.rs:8:59 [INFO] [stdout] | [INFO] [stdout] 8 | embedded::{EmbeddedDocument, EmbeddedDocumentBuilder, ValidationLevel}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::LegacyFontManager`: Use render::text::fonts::FontManager instead [INFO] [stdout] --> tests/legacy_compat_tests.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | text::{FontManager, Typography, TextLayout, TextColor, FontWeight, FontVariant, TextBounds}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::Typography`: Use DocumentBuilder font settings instead [INFO] [stdout] --> tests/legacy_compat_tests.rs:9:25 [INFO] [stdout] | [INFO] [stdout] 9 | text::{FontManager, Typography, TextLayout, TextColor, FontWeight, FontVariant, TextBounds}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `webpdf::legacy_compat::LegacyTextLayout`: Text layout is handled automatically in the new system [INFO] [stdout] --> tests/legacy_compat_tests.rs:9:37 [INFO] [stdout] | [INFO] [stdout] 9 | text::{FontManager, Typography, TextLayout, TextColor, FontWeight, FontVariant, TextBounds}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `html` [INFO] [stdout] --> tests/module_integration_tests.rs:484:9 [INFO] [stdout] | [INFO] [stdout] 484 | let html = r#" [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_html` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `expected_elements` and `description` are never read [INFO] [stdout] --> tests/test_utils.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct TestDocument { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub expected_elements: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | pub expected_pages: usize, [INFO] [stdout] 18 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TestDocument` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `memory_usage`, `document_size`, and `pdf_size` are never read [INFO] [stdout] --> tests/test_utils.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PerformanceResult { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub memory_usage: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 27 | pub success: bool, [INFO] [stdout] 28 | pub document_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 29 | pub pdf_size: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PerformanceResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestProcessor` is never constructed [INFO] [stdout] --> tests/test_utils.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct TestProcessor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> tests/test_utils.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl TestProcessor { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 111 | /// Create a new test processor [INFO] [stdout] 112 | pub fn new() -> WebPdfResult { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn with_config(config: Config) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn process_with_measurement(&mut self, test_doc: &TestDocument) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | fn get_memory_usage(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn performance_results(&self) -> &[PerformanceResult] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn clear_results(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn metrics(&self) -> &PipelineMetrics { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `assert_performance_bounds` and `assert_pipeline_metrics` are never used [INFO] [stdout] --> tests/test_utils.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 181 | impl TestAssertions { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] 182 | /// Assert that performance is within acceptable bounds [INFO] [stdout] 183 | pub fn assert_performance_bounds(result: &PerformanceResult, max_duration: Duration, max_memory: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn assert_pipeline_metrics(metrics: &PipelineMetrics) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `minimal_test_document` is never used [INFO] [stdout] --> tests/test_utils.rs:264:8 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn minimal_test_document() -> TestDocument { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:243:15 [INFO] [stdout] | [INFO] [stdout] 243 | pub const PARSING_TARGET: Duration = Duration::from_millis(10); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STYLING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:244:15 [INFO] [stdout] | [INFO] [stdout] 244 | pub const STYLING_TARGET: Duration = Duration::from_millis(5); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LAYOUT_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:245:15 [INFO] [stdout] | [INFO] [stdout] 245 | pub const LAYOUT_TARGET: Duration = Duration::from_millis(20); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RENDERING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:246:15 [INFO] [stdout] | [INFO] [stdout] 246 | pub const RENDERING_TARGET: Duration = Duration::from_millis(50); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `END_TO_END_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:247:15 [INFO] [stdout] | [INFO] [stdout] 247 | pub const END_TO_END_TARGET: Duration = Duration::from_millis(100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MEMORY_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:249:15 [INFO] [stdout] | [INFO] [stdout] 249 | pub const MEMORY_TARGET: usize = 50 * 1024 * 1024; // 50MB [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SIMPLE_DOC_MEMORY` is never used [INFO] [stdout] --> tests/test_utils.rs:250:15 [INFO] [stdout] | [INFO] [stdout] 250 | pub const SIMPLE_DOC_MEMORY: usize = 5 * 1024 * 1024; // 5MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMPLEX_DOC_MEMORY` is never used [INFO] [stdout] --> tests/test_utils.rs:251:15 [INFO] [stdout] | [INFO] [stdout] 251 | pub const COMPLEX_DOC_MEMORY: usize = 20 * 1024 * 1024; // 20MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/legacy_compat_tests.rs:346:9 [INFO] [stdout] | [INFO] [stdout] 346 | let mut font_mgr = FontManager::new().expect("Failed to create font manager"); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `expected_elements` and `description` are never read [INFO] [stdout] --> tests/test_utils.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct TestDocument { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub expected_elements: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | pub expected_pages: usize, [INFO] [stdout] 18 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TestDocument` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `memory_usage`, `document_size`, and `pdf_size` are never read [INFO] [stdout] --> tests/test_utils.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PerformanceResult { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub memory_usage: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 27 | pub success: bool, [INFO] [stdout] 28 | pub document_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 29 | pub pdf_size: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PerformanceResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestProcessor` is never constructed [INFO] [stdout] --> tests/test_utils.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct TestProcessor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> tests/test_utils.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl TestProcessor { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 111 | /// Create a new test processor [INFO] [stdout] 112 | pub fn new() -> WebPdfResult { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn with_config(config: Config) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn process_with_measurement(&mut self, test_doc: &TestDocument) -> WebPdfResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | fn get_memory_usage(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn performance_results(&self) -> &[PerformanceResult] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn clear_results(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn metrics(&self) -> &PipelineMetrics { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `assert_performance_bounds` and `assert_pipeline_metrics` are never used [INFO] [stdout] --> tests/test_utils.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 181 | impl TestAssertions { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] 182 | /// Assert that performance is within acceptable bounds [INFO] [stdout] 183 | pub fn assert_performance_bounds(result: &PerformanceResult, max_duration: Duration, max_memory: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn assert_pipeline_metrics(metrics: &PipelineMetrics) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `minimal_test_document` is never used [INFO] [stdout] --> tests/test_utils.rs:264:8 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn minimal_test_document() -> TestDocument { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:243:15 [INFO] [stdout] | [INFO] [stdout] 243 | pub const PARSING_TARGET: Duration = Duration::from_millis(10); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STYLING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:244:15 [INFO] [stdout] | [INFO] [stdout] 244 | pub const STYLING_TARGET: Duration = Duration::from_millis(5); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LAYOUT_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:245:15 [INFO] [stdout] | [INFO] [stdout] 245 | pub const LAYOUT_TARGET: Duration = Duration::from_millis(20); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RENDERING_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:246:15 [INFO] [stdout] | [INFO] [stdout] 246 | pub const RENDERING_TARGET: Duration = Duration::from_millis(50); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `END_TO_END_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:247:15 [INFO] [stdout] | [INFO] [stdout] 247 | pub const END_TO_END_TARGET: Duration = Duration::from_millis(100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MEMORY_TARGET` is never used [INFO] [stdout] --> tests/test_utils.rs:249:15 [INFO] [stdout] | [INFO] [stdout] 249 | pub const MEMORY_TARGET: usize = 50 * 1024 * 1024; // 50MB [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SIMPLE_DOC_MEMORY` is never used [INFO] [stdout] --> tests/test_utils.rs:250:15 [INFO] [stdout] | [INFO] [stdout] 250 | pub const SIMPLE_DOC_MEMORY: usize = 5 * 1024 * 1024; // 5MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMPLEX_DOC_MEMORY` is never used [INFO] [stdout] --> tests/test_utils.rs:251:15 [INFO] [stdout] | [INFO] [stdout] 251 | pub const COMPLEX_DOC_MEMORY: usize = 20 * 1024 * 1024; // 20MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> examples/validation/runner.rs:285:40 [INFO] [stdout] | [INFO] [stdout] 285 | *features_tested.entry(feature.clone()).or_insert(0) += 1; [INFO] [stdout] | ^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> examples/validation/performance_check.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io::{BufRead, BufReader}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `features_str` does not live long enough [INFO] [stdout] --> examples/validation/compile_check.rs:177:23 [INFO] [stdout] | [INFO] [stdout] 172 | let mut args = vec!["check", "--example", example_name, "--message-format=json"]; [INFO] [stdout] | -------- variable `args` declared here [INFO] [stdout] ... [INFO] [stdout] 176 | let features_str = features.join(","); [INFO] [stdout] | ------------ binding `features_str` declared here [INFO] [stdout] 177 | args.push(&features_str); [INFO] [stdout] | ^^^^^^^^^^^^^ borrowed value does not live long enough [INFO] [stdout] 178 | } [INFO] [stdout] | - `features_str` dropped here while still borrowed [INFO] [stdout] ... [INFO] [stdout] 181 | .args(&args) [INFO] [stdout] | ----- borrow later used here [INFO] [stdout] | [INFO] [stdout] = note: `args` is a collection that stores borrowed references, but `features_str` does not live long enough to be stored in it [INFO] [stdout] = help: buffer reuse with borrowed references requires unsafe code or restructuring [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `result` as mutable because it is also borrowed as immutable [INFO] [stdout] --> examples/validation/output_check.rs:155:82 [INFO] [stdout] | [INFO] [stdout] 155 | self.validate_content(&result.content_analysis, expectation, &mut result); [INFO] [stdout] | ---------------- ------------------------ ^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow occurs here [INFO] [stdout] | immutable borrow later used by call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `example_name` [INFO] [stdout] --> examples/validation/performance_check.rs:337:72 [INFO] [stdout] | [INFO] [stdout] 337 | ...&PerformanceResult, example_name: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_example_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*grade` which is behind a shared reference [INFO] [stdout] --> examples/validation/performance_check.rs:502:14 [INFO] [stdout] | [INFO] [stdout] 502 | (*grade, count) [INFO] [stdout] | ^^^^^^ move occurs because `*grade` has type `PerformanceGrade`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 502 - (*grade, count) [INFO] [stdout] 502 + (grade.clone(), count) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0502, E0507, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0282`. [INFO] [stdout] [INFO] [stderr] error: could not compile `webpdf` (example "validation") due to 5 previous errors; 4 warnings emitted [INFO] running `Command { std: "docker" "inspect" "52d8e8c77934ac46f8f5668e34515bad2719f2ee603cc1bf1937a86a4423aa16", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "52d8e8c77934ac46f8f5668e34515bad2719f2ee603cc1bf1937a86a4423aa16", kill_on_drop: false }` [INFO] [stdout] 52d8e8c77934ac46f8f5668e34515bad2719f2ee603cc1bf1937a86a4423aa16