[INFO] cloning repository https://github.com/parsa-mirsaeed/bee4a48afa14998f0f18464b
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/parsa-mirsaeed/bee4a48afa14998f0f18464b" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparsa-mirsaeed%2Fbee4a48afa14998f0f18464b", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparsa-mirsaeed%2Fbee4a48afa14998f0f18464b'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 10184d04dfe92f748c807a6fc423d0f9f720bbb2
[INFO] testing parsa-mirsaeed/bee4a48afa14998f0f18464b against 1.100.0-beta.1 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparsa-mirsaeed%2Fbee4a48afa14998f0f18464b" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/parsa-mirsaeed/bee4a48afa14998f0f18464b
[INFO] finished tweaking git repo https://github.com/parsa-mirsaeed/bee4a48afa14998f0f18464b
[INFO] tweaked toml for git repo https://github.com/parsa-mirsaeed/bee4a48afa14998f0f18464b written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/parsa-mirsaeed/bee4a48afa14998f0f18464b on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/parsa-mirsaeed/bee4a48afa14998f0f18464b 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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `axum`
[INFO] [stderr]   --> Cargo.toml:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | axum = "0.8.7"
[INFO] [stderr]    | ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `axum`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077
[INFO] running `Command { std: "docker" "start" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `axum`
[INFO] [stderr]   --> Cargo.toml:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | axum = "0.8.7"
[INFO] [stderr]    | ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `axum`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.105
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling dioxus-core-types v0.7.2
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling zerocopy v0.8.28
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling bumpalo v3.19.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling longest-increasing-subsequence v0.1.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling wasm-bindgen v0.2.105
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling cc v1.2.47
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling dioxus-cli-config v0.7.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling rustls-pki-types v1.13.0
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling convert_case v0.8.0
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]    Compiling keyboard-types v0.7.0
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling memmap2 v0.9.9
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mio v1.1.0
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling lazy-js-bundle v0.7.2
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling const_format v0.2.35
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling psl-types v2.0.11
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling dioxus-document v0.7.2
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]    Compiling euclid v0.22.11
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling webpki-roots v1.0.4
[INFO] [stderr]    Compiling iri-string v0.7.9
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling charset v0.1.5
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling proc-macro-error-attr3 v3.1.0
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling base16 v0.2.1
[INFO] [stderr]    Compiling inventory v0.3.21
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling xxhash-rust v0.8.15
[INFO] [stderr]    Compiling content_disposition v0.4.0
[INFO] [stderr]    Compiling send_wrapper v0.6.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling const-str v0.7.0
[INFO] [stderr]    Compiling dioxus-config-macro v0.7.2
[INFO] [stderr]    Compiling dioxus-config-macros v0.7.2
[INFO] [stderr]    Compiling api v0.2.0 (/opt/rustwide/workdir/packages/api)
[INFO] [stderr]    Compiling proc-macro-error3 v3.1.0
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_BEGIN src/db/authorized_pool.rs
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_MISSING src/db/authorized_pool.rs: No such file or directory (os error 2)
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_END src/db/authorized_pool.rs
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_BEGIN src/bin/knowledge-ingestion-worker.rs
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_MISSING src/bin/knowledge-ingestion-worker.rs: No such file or directory (os error 2)
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_END src/bin/knowledge-ingestion-worker.rs
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.105
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling macro-string v0.1.4
[INFO] [stderr]    Compiling dioxus-rsx v0.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling zerocopy-derive v0.8.28
[INFO] [stderr]    Compiling warnings-macro v0.2.0
[INFO] [stderr]    Compiling const-serialize-macro v0.7.2
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling dioxus-html-internal-macro v0.7.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling dioxus-core-macro v0.7.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling dioxus-router-macro v0.7.2
[INFO] [stderr]    Compiling generational-box v0.7.2
[INFO] [stderr]    Compiling warnings v0.2.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling dioxus-stores-macro v0.7.2
[INFO] [stderr]    Compiling dioxus-fullstack-macro v0.7.2
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling enumset_derive v0.14.0
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.105
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling derive_more v2.0.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling validator_derive v0.20.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling js-sys v0.3.82
[INFO] [stderr]    Compiling dioxus-logger v0.7.2
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling enumset v1.1.10
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling const-serialize v0.7.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling subsecond-types v0.7.2
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_qs v0.15.0
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling subsecond v0.7.2
[INFO] [stderr]    Compiling manganis-core v0.7.2
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling cfb v0.7.3
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling dioxus-core v0.7.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling infer v0.19.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling publicsuffix v2.3.0
[INFO] [stderr]    Compiling manganis-macro v0.7.2
[INFO] [stderr]    Compiling cookie_store v0.21.1
[INFO] [stderr]    Compiling validator v0.21.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling tungstenite v0.27.0
[INFO] [stderr]    Compiling headers-core v0.3.0
[INFO] [stderr]    Compiling headers v0.4.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling parsidate v1.7.1
[INFO] [stderr]    Compiling axum-core v0.5.5
[INFO] [stderr]    Compiling manganis v0.7.2
[INFO] [stderr]    Compiling async-tungstenite v0.31.0
[INFO] [stderr]    Compiling dioxus-signals v0.7.2
[INFO] [stderr]    Compiling dioxus-history v0.7.2
[INFO] [stderr]    Compiling dioxus-devtools-types v0.7.2
[INFO] [stderr]    Compiling dioxus-hooks v0.7.2
[INFO] [stderr]    Compiling dioxus-devtools v0.7.2
[INFO] [stderr]    Compiling dioxus-stores v0.7.2
[INFO] [stderr]    Compiling web-sys v0.3.82
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.55
[INFO] [stderr]    Compiling gloo-timers v0.3.0
[INFO] [stderr]    Compiling dioxus-html v0.7.2
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling dioxus-asset-resolver v0.7.2
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling axum v0.8.7
[INFO] [stderr]    Compiling dioxus-router v0.7.2
[INFO] [stderr]    Compiling dioxus-fullstack-core v0.7.2
[INFO] [stderr]    Compiling hyper-util v0.1.18
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.24
[INFO] [stderr]    Compiling gloo-utils v0.2.0
[INFO] [stderr]    Compiling gloo-net v0.6.0
[INFO] [stderr]    Compiling gloo-net v0.5.0
[INFO] [stderr]    Compiling gloo-storage v0.3.0
[INFO] [stderr]    Compiling wasm-streams v0.4.2
[INFO] [stderr]    Compiling dioxus-fullstack v0.7.2 (/opt/rustwide/workdir/vendor/dioxus-fullstack)
[INFO] [stderr]    Compiling dioxus v0.7.2
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use student::*;
[INFO] [stdout]    |         ^^^^^^^^^^ the name `UserInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 41 | pub use audit_log::*;
[INFO] [stdout]    |         ------------ but the name `UserInfo` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use assignment::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ the name `TeacherInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 38 | pub use report::*;
[INFO] [stdout]    |         --------- but the name `TeacherInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use assignment::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ the name `ClassSectionInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 35 | pub use teaching_assignment::*;
[INFO] [stdout]    |         ---------------------- but the name `ClassSectionInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use enrollment::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ the name `StudentInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 38 | pub use report::*;
[INFO] [stdout]    |         --------- but the name `StudentInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `user` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `user` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `student` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `student` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `assignment` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `assignment` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `submission` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `submission` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `invite` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `invite` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `school` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `school` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `subject` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `subject` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `class_section` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `class_section` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `UserInfo` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `UserInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `User` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `User` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Student` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Student` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Assignment` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Assignment` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Submission` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Submission` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Invite` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Invite` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `School` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `School` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Subject` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Subject` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `ClassSection` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `ClassSection` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> packages/api/src/server_functions/admin_functions.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[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: `crate::dioxus_fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/admin_functions.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/auth_functions.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dioxus::fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dioxus_fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassSectionId`, `SchoolId`, and `SubjectId`
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::domain::{ClassSectionId, SchoolId, SubjectId};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassSectionWithSubject` and `CreateClassSectionRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::models::{ClassSectionWithSubject, CreateClassSectionRequest};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/notification_functions.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use dioxus::fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProfileChangeRequestId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::domain::{PcrStatus, ProfileChangeRequestId, SchoolId, UserId};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateProfileChangeRequestRequest` and `DecideProfileChangeRequestRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CreateProfileChangeRequestRequest, DecideProfileChangeRequestRequest,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SchoolId`, `StudentId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/student_functions.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::domain::{SchoolId, StudentId, UserId};
[INFO] [stdout]   |                     ^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateSubjectRequest` and `UpdateSubjectRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/subject_functions.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::{CreateSubjectRequest, Subject, UpdateSubjectRequest};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/submission_functions.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use dioxus::fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ParentId`, `RoleId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::domain::{UserId, SchoolId, RoleId, ParentId};
[INFO] [stdout]   |                     ^^^^^^  ^^^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `validate_email_uniqueness` and `validate_uuid_exists`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::server_functions::form_data::{validate_email_uniqueness, validate_uuid_exists};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AdminCreateParentRequest`, `AdminCreateStudentRequest`, and `AdminCreateTeacherRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::user::{AdminCreateStudentRequest, AdminCreateTeacherRequest, AdminCreateParentRequest};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RoleId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/user_functions.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::domain::{UserId, RoleId, SchoolId};
[INFO] [stdout]   |                     ^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dioxus_fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/user_management.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RoleId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/user_management.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::domain::{RoleId, SchoolId, UserId};
[INFO] [stdout]   |                     ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/admin_functions.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/auth_functions.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dioxus::fullstack::extract;
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/notification_functions.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use dioxus::fullstack::extract;
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/submission_functions.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use dioxus::fullstack::extract;
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::GetUserById`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]   --> packages/api/src/server_functions/user_functions.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[server(GetUserById, endpoint = "users/get_by_id")]
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::CreateUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]   --> packages/api/src/server_functions/user_functions.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[server(CreateUser, endpoint = "users/create")]
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::UpdateUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]   --> packages/api/src/server_functions/user_functions.rs:87:10
[INFO] [stdout]    |
[INFO] [stdout] 87 | #[server(UpdateUser, endpoint = "users/update")]
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::DeleteUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]    --> packages/api/src/server_functions/user_functions.rs:107:10
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[server(DeleteUser, endpoint = "users/delete")]
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/user_management.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNOWLEDGE_SOURCE_BUCKET` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/admin_knowledge_review_functions.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const KNOWLEDGE_SOURCE_BUCKET: &str = "edutalent-knowledge-sources";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_sha256` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/admin_knowledge_review_functions.rs:500:4
[INFO] [stdout]     |
[INFO] [stdout] 500 | fn is_sha256(value: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unavailable` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/class_section_functions.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn unavailable<T>() -> Result<T, ServerFnError> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `teacher_assignment_progress_state` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/dashboard_functions.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn teacher_assignment_progress_state(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `student_assignment_presentation_state` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/dashboard_functions.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn student_assignment_presentation_state(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unavailable` is never used
[INFO] [stdout]  --> packages/api/src/server_functions/invite_functions.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn unavailable<T>() -> Result<T, ServerFnError> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CONTEXT_KEY_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_functions.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const MAX_CONTEXT_KEY_BYTES: usize = 255;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SEARCH_QUERY_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_functions.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MAX_SEARCH_QUERY_BYTES: usize = 8_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_context` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/knowledge_functions.rs:521:4
[INFO] [stdout]     |
[INFO] [stdout] 521 | fn validate_context(scope: &str, key: &str) -> Result<(), ServerFnError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_submission` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/knowledge_functions.rs:539:4
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn validate_submission(request: &ManagerKnowledgeSubmissionRequest) -> Result<(), ServerFnError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNOWLEDGE_SOURCE_BUCKET` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_readiness.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const KNOWLEDGE_SOURCE_BUCKET: &str = "edutalent-knowledge-sources";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CONTEXT_KEY_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_selection_functions.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const MAX_CONTEXT_KEY_BYTES: usize = 255;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_context` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_selection_functions.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn validate_context(scope: &str, key: &str) -> Result<(), ServerFnError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_NOTIFICATION_LIMIT` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/notification_functions.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const DEFAULT_NOTIFICATION_LIMIT: i64 = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NOTIFICATION_LIMIT` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/notification_functions.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const MAX_NOTIFICATION_LIMIT: i64 = 100;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NOTIFICATION_OFFSET` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/notification_functions.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MAX_NOTIFICATION_OFFSET: i64 = 10_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bounded_limit` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/notification_functions.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn bounded_limit(limit: Option<i64>) -> i64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PROFILE_DIFF_BYTES` is never used
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAX_PROFILE_DIFF_BYTES: usize = 16_384;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PROFILE_NAME_BYTES` is never used
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAX_PROFILE_NAME_BYTES: usize = 200;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PROFILE_EMAIL_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/profile_change_requests.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const MAX_PROFILE_EMAIL_BYTES: usize = 320;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SUBMISSION_CONTENT_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/submission_functions.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MAX_SUBMISSION_CONTENT_BYTES: usize = 100_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProvisionableRole` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_management.rs:25:6
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum ProvisionableRole {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `parse` and `as_str` are never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_management.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl ProvisionableRole {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 32 |     fn parse(value: &str) -> Option<Self> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn as_str(self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_LANGUAGES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const SUPPORTED_LANGUAGES: &[&str] = &["fa", "en"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_TIMEZONES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const SUPPORTED_TIMEZONES: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_DATE_FORMATS` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const SUPPORTED_DATE_FORMATS: &[&str] = &["YYYY-MM-DD", "MM/DD/YYYY", "DD/MM/YYYY", "DD.MM.YYYY"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_TIME_FORMATS` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const SUPPORTED_TIME_FORMATS: &[&str] = &["24h", "12h"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_general` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn validate_general(request: &UpdateGeneralSettingsRequest) -> Result<(), ServerFnError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_notification_request` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn normalize_notification_request(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProvisionableRole` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_provisioning.rs:40:6
[INFO] [stdout]    |
[INFO] [stdout] 40 | enum ProvisionableRole {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `parse` and `as_str` are never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_provisioning.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl ProvisionableRole {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 47 |     fn parse(value: &str) -> Option<Self> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn as_str(self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ui v0.1.0 (/opt/rustwide/workdir/packages/ui)
[INFO] [stderr]    Compiling web v0.3.0 (/opt/rustwide/workdir/packages/web)
[INFO] [stdout] warning: unused import: `AccessControl`
[INFO] [stdout]  --> packages/web/src/application/routing_service.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::domain::{AccessControl, SystemRole, User};
[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: `validation::*`
[INFO] [stdout]  --> packages/web/src/components/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use validation::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `auth::*`
[INFO] [stdout]  --> packages/web/src/components/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use auth::*;
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `skeleton::*`
[INFO] [stdout]  --> packages/web/src/components/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use skeleton::*;
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dashboard_skeleton::*`
[INFO] [stdout]  --> packages/web/src/components/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use dashboard_skeleton::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `validation::*`
[INFO] [stdout]  --> packages/web/src/utils/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use validation::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `auth::*`
[INFO] [stdout]  --> packages/web/src/utils/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use auth::*;
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cache::*`
[INFO] [stdout]  --> packages/web/src/utils/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use cache::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `login::LoginPage`
[INFO] [stdout]  --> packages/web/src/views/mod.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use login::LoginPage;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error_boundary::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/components/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use error_boundary::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `loading_spinner::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/components/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use loading_spinner::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `navigation::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/components/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use navigation::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `role_guard::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/components/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use role_guard::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `children::*`
[INFO] [stdout]  --> packages/web/src/views/role_based/parent/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use children::*;
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `communication::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/parent/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use communication::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reports::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/parent/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use reports::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SkeletonCard`
[INFO] [stdout]  --> packages/web/src/views/role_based/school_manager/user_management.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::components::skeleton::{SkeletonCard, SkeletonTable};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LocalStorage`
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/user_management.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use gloo_storage::{LocalStorage, Storage};
[INFO] [stdout]    |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SchoolManagerOverviewSection`
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/mod.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use dashboard::{SchoolManagerDashboard, SchoolManagerOverviewSection};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `charts::*`
[INFO] [stdout]  --> packages/web/src/views/role_based/shared/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use charts::*;
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `common::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use common::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `forms::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use forms::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tables::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use tables::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `classes::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/student/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use classes::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assignments::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/student/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use assignments::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `grades::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/student/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use grades::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `schedule::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/student/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use schedule::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TeacherAssignmentClassOption`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/assignments.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     TeacherAssignmentClassOption,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassMaterialInfo` and `ClassStudentInfo`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/classes.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 |     get_vectorization_status, ClassMaterialInfo, ClassStudentInfo, TeacherClassView,
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StudentGradeDetail`
[INFO] [stdout]  --> packages/web/src/views/role_based/teacher/students.rs:6:59
[INFO] [stdout]   |
[INFO] [stdout] 6 |     get_student_grades_for_teacher, get_teacher_students, StudentGradeDetail, TeacherStudentInfo,
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_submissions_for_assignment`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/submissions.rs:10:42
[INFO] [stdout]    |
[INFO] [stdout] 10 |     get_pending_submissions_for_teacher, get_submissions_for_assignment, grade_submission,
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assignments::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use assignments::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `classes::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use classes::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TeacherOverviewSection`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use dashboard::{TeacherDashboard, TeacherOverviewSection};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `personalization_status::PersonalizationQueueStatusPanel`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use personalization_status::PersonalizationQueueStatusPanel;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `students::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use students::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `submissions::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use submissions::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `components::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use components::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ManagerKnowledgeSubmissionsSection` and `TeacherKnowledgeAssetsSection`
[INFO] [stdout]   --> packages/web/src/views/role_based/mod.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use knowledge::{ManagerKnowledgeSubmissionsSection, TeacherKnowledgeAssetsSection};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use shared::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `role_based::*`
[INFO] [stdout]  --> packages/web/src/views/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use role_based::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils`
[INFO] [stdout]   --> packages/web/src/views/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::utils;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::components`
[INFO] [stdout]   --> packages/web/src/views/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::components;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> packages/web/src/main.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, Routable, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        unreachable call
[INFO] [stdout]    |                        any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Routable` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Storage`
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/user_management.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use gloo_storage::{LocalStorage, Storage};
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:419:14
[INFO] [stdout]     |
[INFO] [stdout] 419 |         for (index, part) in parts.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/knowledge.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |     let mut provider = use_signal(|| "manual-verified".to_string());
[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: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let mut selected_ocr_asset = use_signal(|| None::<OcrEditorState>);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let mut pending_ocr_asset = use_signal(|| None::<(String, String)>);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 |     let mut pending_archive = use_signal(|| None::<(String, String, String)>);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let mut discard_ocr_confirmation = use_signal(|| false);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let mut archive_confirmation = use_signal(|| None::<(String, String, String)>);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let mut ocr_text = use_signal(String::new);
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let mut provider = use_signal(|| "manual-verified".to_string());
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let mut busy = use_signal(|| false);
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let mut notice = use_signal(|| None::<&'static str>);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut assets =
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:880:5
[INFO] [stdout]     |
[INFO] [stdout] 880 |     mut selected_ocr_asset: Signal<Option<OcrEditorState>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:881:5
[INFO] [stdout]     |
[INFO] [stdout] 881 |     mut ocr_text: Signal<String>,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin_personalization.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |     let mut teachers = use_resource(move || {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/knowledge_upload.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut form_epoch = use_signal(|| 0_u64);
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/knowledge_upload.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut readiness =
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/user_creation.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut active_tab = use_signal(|| "Student".to_string());
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locale`
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/user_creation.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let locale = use_locale();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_locale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/submission_files.rs:200:21
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 let file=file.clone();busy.set(true);error.set(false);
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/teacher/assignments.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 309 |     let mut title = use_signal(String::new);
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/teacher/assignments.rs:313:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     let mut due_date = use_signal(String::new);
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material_id`
[INFO] [stdout]    --> packages/web/src/views/role_based/teacher/classes.rs:467:45
[INFO] [stdout]     |
[INFO] [stdout] 467 | ...                   let material_id = material.id.clone();
[INFO] [stdout]     |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]   --> packages/web/src/application/auth_service.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl AppAuthService {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub async fn logout() -> Result<(), AuthError> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub async fn get_current_user() -> Result<Option<User>, AuthError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub async fn is_authenticated() -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub async fn refresh_session() -> Result<UserSession, AuthError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub async fn has_role(required_role: SystemRole) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub async fn has_any_role(required_roles: &[SystemRole]) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub async fn has_permission(permission: &str) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `use_has_role`, `use_has_permission`, `use_auth_error`, `set_auth_error`, and `clear_auth_error` are never used
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl AuthHooks {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn use_has_role(required_role: SystemRole) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn use_has_permission(permission: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn use_auth_error() -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn set_auth_error(error: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn clear_auth_error() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RoleGuard` is never constructed
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct RoleGuard;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `require_role`, `require_any_role`, and `require_permission` are never used
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl RoleGuard {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] 133 |     /// Component that only renders if user has required role
[INFO] [stdout] 134 |     pub fn require_role(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn require_any_role(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn require_permission(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthUtils` is never constructed
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:229:12
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub struct AuthUtils;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_login_redirect`, `format_role_display`, `validate_session`, and `handle_auth_error` are never used
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl AuthUtils {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] 232 |     /// Get redirect URL after successful login based on user role
[INFO] [stdout] 233 |     pub fn get_login_redirect(user: &User) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn format_role_display(role: &SystemRole) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub async fn validate_session() -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn handle_auth_error(error: &AuthError) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> packages/web/src/application/routing_service.rs:15:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl RoutingService {
[INFO] [stdout]     | ------------------- associated functions in this implementation
[INFO] [stdout]  15 |     pub fn get_role_based_route(_user: &User) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn get_role_based_route_for_role(_role: SystemRole) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn can_access_route(user: &User, route: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn is_public_route(route: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn is_protected_route(route: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn get_required_role_for_route(route: &str) -> Option<SystemRole> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn get_required_permission_for_route(route: &str) -> Option<&'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn get_active_navigation_item<'a>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn redirect_to_role_dashboard(user: &User) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_active` is never used
[INFO] [stdout]    --> packages/web/src/application/routing_service.rs:338:12
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl NavigationItem {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn with_active(mut self, active: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RouteGuard` is never constructed
[INFO] [stdout]    --> packages/web/src/application/routing_service.rs:345:12
[INFO] [stdout]     |
[INFO] [stdout] 345 | pub struct RouteGuard;
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `require_route_access` is never used
[INFO] [stdout]    --> packages/web/src/application/routing_service.rs:348:12
[INFO] [stdout]     |
[INFO] [stdout] 347 | impl RouteGuard {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 348 |     pub fn require_route_access(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create_session`, `refresh_session`, `get_current_user`, `get_session_timeout`, and `needs_refresh` are never used
[INFO] [stdout]   --> packages/web/src/application/session_manager.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl SessionManager {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] 10 |     /// Initialize user session after successful authentication
[INFO] [stdout] 11 |     pub async fn create_session(session: UserSession) -> Result<(), AuthError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub async fn refresh_session() -> Result<UserSession, AuthError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub async fn get_current_user() -> Option<User> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn get_session_timeout() -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub async fn needs_refresh() -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionHooks` is never constructed
[INFO] [stdout]   --> packages/web/src/application/session_manager.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct SessionHooks;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `use_current_session`, `use_is_session_valid`, `use_session_expiry`, and `use_needs_refresh` are never used
[INFO] [stdout]    --> packages/web/src/application/session_manager.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl SessionHooks {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout]  72 |     /// Hook to get current session state
[INFO] [stdout]  73 |     pub fn use_current_session() -> Option<UserSession> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn use_is_session_valid() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn use_session_expiry() -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn use_needs_refresh() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `format_expiry_time`, `get_time_remaining`, and `is_session_expiring_soon` are never used
[INFO] [stdout]    --> packages/web/src/application/session_manager.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl SessionUtils {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 121 |     /// Format session expiry time for display
[INFO] [stdout] 122 |     pub fn format_expiry_time(expiry_str: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_time_remaining(expiry_str: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_session_expiring_soon(expiry_str: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> packages/web/src/domain/roles.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl SystemRole {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn can_manage_platform_knowledge(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn can_submit_school_knowledge(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn can_manage_classes(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn can_manage_users(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn can_view_reports(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn can_manage_assignments(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn can_submit_assignments(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn can_view_student_progress(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RolePermissions` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/roles.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct RolePermissions;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_permissions` and `has_permission` are never used
[INFO] [stdout]    --> packages/web/src/domain/roles.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl RolePermissions {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] 105 |     pub fn get_permissions(role: &SystemRole) -> Vec<&'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn has_permission(role: &SystemRole, permission: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `has_role`, `is_administrative`, `get_permissions`, and `has_permission` are never used
[INFO] [stdout]   --> packages/web/src/domain/user.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl User {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 18 |     /// Create a new user instance
[INFO] [stdout] 19 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn has_role(&self, role: &SystemRole) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn is_administrative(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_permissions(&self) -> Vec<&'static str> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn has_permission(&self, permission: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_expired` is never used
[INFO] [stdout]    --> packages/web/src/domain/user.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl UserSession {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn is_expired(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpdateUserProfile` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/user.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct UpdateUserProfile {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UserInfo` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/user.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct UserInfo {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_redirect_path`, `can_access_route`, and `get_error_message` are never used
[INFO] [stdout]   --> packages/web/src/domain/auth.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl AuthService {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn get_redirect_path(role: &SystemRole) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn can_access_route(user: &User, route: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn get_error_message(error: &AuthError) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PasswordResetRequest` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/auth.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct PasswordResetRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PasswordResetConfirmation` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/auth.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct PasswordResetConfirmation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PasswordChangeRequest` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/auth.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct PasswordChangeRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccessControl` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/auth.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct AccessControl;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `can_perform_action` and `get_accessible_routes` are never used
[INFO] [stdout]    --> packages/web/src/domain/auth.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | impl AccessControl {
[INFO] [stdout]     | ------------------ associated functions in this implementation
[INFO] [stdout] 130 |     pub fn can_perform_action(user: &User, action: &str, resource: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn get_accessible_routes(user: &User) -> Vec<&'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_persian_numerals` is never used
[INFO] [stdout]    --> packages/web/src/i18n/grading.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn from_persian_numerals(s: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_grade` is never used
[INFO] [stdout]    --> packages/web/src/i18n/grading.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn parse_grade(input: &str, locale: Locale) -> Option<LocalizedGrade> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_grade` is never used
[INFO] [stdout]    --> packages/web/src/i18n/grading.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn validate_grade(value: f64, locale: Locale) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCALE_STORAGE_KEY` is never used
[INFO] [stdout]   --> packages/web/src/i18n/provider.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const LOCALE_STORAGE_KEY: &str = "edutalent_locale";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_use_locale` is never used
[INFO] [stdout]   --> packages/web/src/i18n/provider.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn try_use_locale() -> Option<LocaleContext> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assignment_status_label` is never used
[INFO] [stdout]    --> packages/web/src/i18n/ui_translations.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn assignment_status_label(value: &str, locale: Locale) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `is_authenticated` and `refresh_session` are never used
[INFO] [stdout]    --> packages/web/src/infrastructure/auth_provider.rs:141:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl AuthProvider {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub async fn is_authenticated() -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub async fn refresh_session() -> Result<UserSession, AuthError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `is_authenticated` is never used
[INFO] [stdout]    --> packages/web/src/infrastructure/auth_provider.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl AuthState {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn is_authenticated() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `disabled` are never used
[INFO] [stdout]   --> packages/web/src/ui/forms.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl SelectOption {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 41 |     pub fn new(value: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn disabled(mut self, disabled: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_error`, `clear_field_error`, `clear_all_errors`, `has_field_error`, and `get_field_error` are never used
[INFO] [stdout]   --> packages/web/src/utils/validation.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl FormValidationState {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 20 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn add_error(&mut self, field: String, message: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn clear_field_error(&mut self, field: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn clear_all_errors(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn has_field_error(&self, field: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn get_field_error(&self, field: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationRule` is never constructed
[INFO] [stdout]   --> packages/web/src/utils/validation.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ValidationRule {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> packages/web/src/utils/validation.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl ValidationRule {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 88 |     pub fn validate(&self, value: &str) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FormValidator` is never constructed
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct FormValidator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_rule`, and `validate_form` are never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl FormValidator {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 146 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn add_rule(mut self, rule: ValidationRule) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn validate_form(&self, data: &std::collections::HashMap<String, String>) -> FormValidationState {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_form_validation` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn use_form_validation() -> Signal<FormValidationState> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_field` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn required_field(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_name` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 191 |     pub fn required_name(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_email` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub fn required_email(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optional_phone` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:215:12
[INFO] [stdout]     |
[INFO] [stdout] 215 |     pub fn optional_phone(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grade_level` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 227 |     pub fn grade_level(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_text` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:239:12
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn required_text(field: &str, min: usize, max: usize) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optional_text` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:251:12
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn optional_text(field: &str, min: usize, max: usize) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_uuid` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 263 |     pub fn required_uuid(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optional_uuid` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 275 |     pub fn optional_uuid(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthState` is never constructed
[INFO] [stdout]  --> packages/web/src/utils/auth.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct AuthState {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_auth` is never used
[INFO] [stdout]   --> packages/web/src/utils/auth.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn use_auth() -> Resource<Option<api::domain::UserInfo>> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trigger_logout` is never used
[INFO] [stdout]   --> packages/web/src/utils/auth.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn trigger_logout() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `invalidate_subjects` is never used
[INFO] [stdout]   --> packages/web/src/utils/cache.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl AppCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn invalidate_subjects(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorBoundaryHooks` is never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/components/error_boundary.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct ErrorBoundaryHooks;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `use_async_error_handler`, `use_clear_error`, and `use_has_error` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/error_boundary.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl ErrorBoundaryHooks {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 117 |     pub fn use_async_error_handler() -> EventHandler<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn use_clear_error() -> impl FnMut() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn use_has_error() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AppError` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/error_boundary.rs:140:10
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub enum AppError {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `user_message` and `error_type` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/error_boundary.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl AppError {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn user_message(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn error_type(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `current`, and `with_click` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl BreadcrumbItem {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 127 |     pub fn new(label: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn current(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn with_click(mut self, on_click: EventHandler<()>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_icon`, and `with_badge` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl TabItem {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 216 |     pub fn new(id: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn with_icon(mut self, icon: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn with_badge(mut self, badge: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_description`, `with_icon`, and `with_click` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:304:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | impl QuickAction {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 304 |     pub fn new(id: impl Into<String>, title: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn with_description(mut self, description: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn with_icon(mut self, icon: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     pub fn with_click(mut self, on_click: EventHandler<()>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NavigationUtils` is never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 407 | pub struct NavigationUtils;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `breadcrumbs_from_route` and `format_route_part` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:411:12
[INFO] [stdout]     |
[INFO] [stdout] 409 | impl NavigationUtils {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] 410 |     /// Generate breadcrumb items from a route path
[INFO] [stdout] 411 |     pub fn breadcrumbs_from_route(route: &str) -> Vec<BreadcrumbItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     fn format_route_part(part: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optional_text` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/knowledge.rs:510:4
[INFO] [stdout]     |
[INFO] [stdout] 510 | fn optional_text(value: String) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `metadata_line` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/knowledge.rs:515:4
[INFO] [stdout]     |
[INFO] [stdout] 515 | fn metadata_line(subject: &Option<String>, grade: &Option<String>, language: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replacement_error_message` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:491:4
[INFO] [stdout]     |
[INFO] [stdout] 491 | fn replacement_error_message(status: u16, fa: bool) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_form_error` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn source_form_error(f: bool) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replacement_success` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:574:4
[INFO] [stdout]     |
[INFO] [stdout] 574 | fn replacement_success(f: bool) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `storage_error` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:581:4
[INFO] [stdout]     |
[INFO] [stdout] 581 | fn storage_error(f: bool) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload_error_message` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/school_manager/knowledge_upload.rs:266:4
[INFO] [stdout]     |
[INFO] [stdout] 266 | fn upload_error_message(status: u16) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/charts.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl ChartItem {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 154 |     pub fn new(label: impl Into<String>, value: f32, color: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Warning` and `Gray` are never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub enum BadgeVariant {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] 125 |     Success,
[INFO] [stdout] 126 |     Warning,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     Gray,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BadgeVariant` 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: variants `Success`, `Warning`, and `Danger` are never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:200:5
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub enum ButtonVariant {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 200 |     Success,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 201 |     Warning,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 202 |     Danger,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ButtonVariant` 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: variant `Large` is never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:210:5
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum ButtonSize {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 210 |     Large,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ButtonSize` 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 `new` is never used
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/forms.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl SelectOption {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 72 |     pub fn new(value: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/tables.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl TableColumn {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 40 |     pub fn new(key: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_cell` and `get_cell_value` are never used
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/tables.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl TableRow {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn with_cell(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn get_cell_value(&self, key: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_change`, and `with_icon` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/tables.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl StatItem {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 105 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn with_change(mut self, change: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_icon(mut self, icon: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `className` should have a snake case name
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     className: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `class_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `className` should have a snake case name
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     className: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `className` should have a snake case name
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     className: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `validator`
[INFO] [stderr]   --> packages/api/Cargo.toml:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | validator = { workspace = true }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `validator`
[INFO] [stderr] warning: `api` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `api`
[INFO] [stderr]  --> packages/ui/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | api = { workspace = true }
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `api`
[INFO] [stderr] warning: `ui` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `parsidate`
[INFO] [stderr]   --> packages/web/Cargo.toml:38:1
[INFO] [stderr]    |
[INFO] [stderr] 38 | parsidate = "1.7"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `parsidate`
[INFO] [stderr] warning: unused dependency `ui`
[INFO] [stderr]  --> packages/web/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | ui = { workspace = true }
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `ui`
[INFO] [stderr] warning: `web` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized] target(s) in 2m 19s
[INFO] running `Command { std: "docker" "inspect" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `axum`
[INFO] [stderr]   --> Cargo.toml:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | axum = "0.8.7"
[INFO] [stderr]    | ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `axum`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]    Compiling api v0.2.0 (/opt/rustwide/workdir/packages/api)
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_BEGIN src/db/authorized_pool.rs
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_MISSING src/db/authorized_pool.rs: No such file or directory (os error 2)
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_END src/db/authorized_pool.rs
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_BEGIN src/bin/knowledge-ingestion-worker.rs
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_MISSING src/bin/knowledge-ingestion-worker.rs: No such file or directory (os error 2)
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_END src/bin/knowledge-ingestion-worker.rs
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use student::*;
[INFO] [stdout]    |         ^^^^^^^^^^ the name `UserInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 41 | pub use audit_log::*;
[INFO] [stdout]    |         ------------ but the name `UserInfo` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use assignment::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ the name `TeacherInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 38 | pub use report::*;
[INFO] [stdout]    |         --------- but the name `TeacherInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use assignment::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ the name `ClassSectionInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 35 | pub use teaching_assignment::*;
[INFO] [stdout]    |         ---------------------- but the name `ClassSectionInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use enrollment::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ the name `StudentInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 38 | pub use report::*;
[INFO] [stdout]    |         --------- but the name `StudentInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `user` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `user` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `student` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `student` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `assignment` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `assignment` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `submission` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `submission` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `invite` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `invite` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `school` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `school` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `subject` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `subject` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `class_section` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `class_section` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `UserInfo` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `UserInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `User` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `User` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Student` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Student` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Assignment` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Assignment` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Submission` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Submission` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Invite` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Invite` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `School` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `School` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Subject` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Subject` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `ClassSection` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `ClassSection` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> packages/api/src/server_functions/admin_functions.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[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: `crate::dioxus_fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/admin_functions.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/auth_functions.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dioxus::fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dioxus_fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassSectionId`, `SchoolId`, and `SubjectId`
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::domain::{ClassSectionId, SchoolId, SubjectId};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassSectionWithSubject` and `CreateClassSectionRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::models::{ClassSectionWithSubject, CreateClassSectionRequest};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use student::*;
[INFO] [stdout]    |         ^^^^^^^^^^ the name `UserInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 41 | pub use audit_log::*;
[INFO] [stdout]    |         ------------ but the name `UserInfo` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use assignment::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ the name `TeacherInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 38 | pub use report::*;
[INFO] [stdout]    |         --------- but the name `TeacherInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use assignment::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ the name `ClassSectionInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 35 | pub use teaching_assignment::*;
[INFO] [stdout]    |         ---------------------- but the name `ClassSectionInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/models/mod.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use enrollment::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ the name `StudentInfo` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 38 | pub use report::*;
[INFO] [stdout]    |         --------- but the name `StudentInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `user` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `user` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `student` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `student` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `assignment` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `assignment` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `submission` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `submission` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `invite` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `invite` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `school` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `school` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `subject` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `subject` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `class_section` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `class_section` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `UserInfo` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `UserInfo` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `User` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `User` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Student` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Student` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Assignment` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Assignment` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Submission` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Submission` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Invite` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Invite` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `School` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `School` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `Subject` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `Subject` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> packages/api/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use domain::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `ClassSection` in the type namespace is first re-exported here
[INFO] [stdout] 12 | pub use models::*;
[INFO] [stdout]    |         --------- but the name `ClassSection` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> packages/api/src/server_functions/admin_functions.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[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: `crate::dioxus_fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/admin_functions.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/notification_functions.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use dioxus::fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProfileChangeRequestId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::domain::{PcrStatus, ProfileChangeRequestId, SchoolId, UserId};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateProfileChangeRequestRequest` and `DecideProfileChangeRequestRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CreateProfileChangeRequestRequest, DecideProfileChangeRequestRequest,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SchoolId`, `StudentId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/student_functions.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::domain::{SchoolId, StudentId, UserId};
[INFO] [stdout]   |                     ^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateSubjectRequest` and `UpdateSubjectRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/subject_functions.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::{CreateSubjectRequest, Subject, UpdateSubjectRequest};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/auth_functions.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dioxus::fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dioxus_fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassSectionId`, `SchoolId`, and `SubjectId`
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::domain::{ClassSectionId, SchoolId, SubjectId};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassSectionWithSubject` and `CreateClassSectionRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::models::{ClassSectionWithSubject, CreateClassSectionRequest};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/submission_functions.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use dioxus::fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ParentId`, `RoleId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::domain::{UserId, SchoolId, RoleId, ParentId};
[INFO] [stdout]   |                     ^^^^^^  ^^^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `validate_email_uniqueness` and `validate_uuid_exists`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::server_functions::form_data::{validate_email_uniqueness, validate_uuid_exists};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AdminCreateParentRequest`, `AdminCreateStudentRequest`, and `AdminCreateTeacherRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::user::{AdminCreateStudentRequest, AdminCreateTeacherRequest, AdminCreateParentRequest};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RoleId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/user_functions.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::domain::{UserId, RoleId, SchoolId};
[INFO] [stdout]   |                     ^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dioxus_fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/user_management.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RoleId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/user_management.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::domain::{RoleId, SchoolId, UserId};
[INFO] [stdout]   |                     ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/notification_functions.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use dioxus::fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProfileChangeRequestId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::domain::{PcrStatus, ProfileChangeRequestId, SchoolId, UserId};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateProfileChangeRequestRequest` and `DecideProfileChangeRequestRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CreateProfileChangeRequestRequest, DecideProfileChangeRequestRequest,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SchoolId`, `StudentId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/student_functions.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::domain::{SchoolId, StudentId, UserId};
[INFO] [stdout]   |                     ^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateSubjectRequest` and `UpdateSubjectRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/subject_functions.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::{CreateSubjectRequest, Subject, UpdateSubjectRequest};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/submission_functions.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use dioxus::fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ParentId`, `RoleId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::domain::{UserId, SchoolId, RoleId, ParentId};
[INFO] [stdout]   |                     ^^^^^^  ^^^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `validate_email_uniqueness` and `validate_uuid_exists`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::server_functions::form_data::{validate_email_uniqueness, validate_uuid_exists};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AdminCreateParentRequest`, `AdminCreateStudentRequest`, and `AdminCreateTeacherRequest`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::user::{AdminCreateStudentRequest, AdminCreateTeacherRequest, AdminCreateParentRequest};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> packages/api/src/server_functions/user_creation.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RoleId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/user_functions.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::domain::{UserId, RoleId, SchoolId};
[INFO] [stdout]   |                     ^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dioxus_fullstack::extract`
[INFO] [stdout]  --> packages/api/src/server_functions/user_management.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RoleId`, `SchoolId`, and `UserId`
[INFO] [stdout]  --> packages/api/src/server_functions/user_management.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::domain::{RoleId, SchoolId, UserId};
[INFO] [stdout]   |                     ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/admin_functions.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/auth_functions.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dioxus::fullstack::extract;
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/notification_functions.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use dioxus::fullstack::extract;
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/admin_functions.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/submission_functions.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use dioxus::fullstack::extract;
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::GetUserById`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]   --> packages/api/src/server_functions/user_functions.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[server(GetUserById, endpoint = "users/get_by_id")]
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::CreateUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]   --> packages/api/src/server_functions/user_functions.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[server(CreateUser, endpoint = "users/create")]
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::UpdateUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]   --> packages/api/src/server_functions/user_functions.rs:87:10
[INFO] [stdout]    |
[INFO] [stdout] 87 | #[server(UpdateUser, endpoint = "users/update")]
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::DeleteUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]    --> packages/api/src/server_functions/user_functions.rs:107:10
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[server(DeleteUser, endpoint = "users/delete")]
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/user_management.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/auth_functions.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dioxus::fullstack::extract;
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/class_functions.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/notification_functions.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use dioxus::fullstack::extract;
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/submission_functions.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use dioxus::fullstack::extract;
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::GetUserById`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]   --> packages/api/src/server_functions/user_functions.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[server(GetUserById, endpoint = "users/get_by_id")]
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::CreateUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]   --> packages/api/src/server_functions/user_functions.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[server(CreateUser, endpoint = "users/create")]
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::UpdateUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]   --> packages/api/src/server_functions/user_functions.rs:87:10
[INFO] [stdout]    |
[INFO] [stdout] 87 | #[server(UpdateUser, endpoint = "users/update")]
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated unit struct `server_functions::user_functions::_::DeleteUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stdout]    --> packages/api/src/server_functions/user_functions.rs:107:10
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[server(DeleteUser, endpoint = "users/delete")]
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stdout]  --> packages/api/src/server_functions/user_management.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::dioxus_fullstack::extract;
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]    --> packages/api/src/server_functions/profile_change_requests.rs:276:9
[INFO] [stdout]     |
[INFO] [stdout] 276 |     use super::*;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unavailable` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/class_section_functions.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn unavailable<T>() -> Result<T, ServerFnError> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unavailable` is never used
[INFO] [stdout]  --> packages/api/src/server_functions/invite_functions.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn unavailable<T>() -> Result<T, ServerFnError> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SEARCH_QUERY_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_functions.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MAX_SEARCH_QUERY_BYTES: usize = 8_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_submission` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/knowledge_functions.rs:539:4
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn validate_submission(request: &ManagerKnowledgeSubmissionRequest) -> Result<(), ServerFnError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CONTEXT_KEY_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_selection_functions.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const MAX_CONTEXT_KEY_BYTES: usize = 255;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_context` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_selection_functions.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn validate_context(scope: &str, key: &str) -> Result<(), ServerFnError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NOTIFICATION_OFFSET` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/notification_functions.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MAX_NOTIFICATION_OFFSET: i64 = 10_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PROFILE_DIFF_BYTES` is never used
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAX_PROFILE_DIFF_BYTES: usize = 16_384;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PROFILE_NAME_BYTES` is never used
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAX_PROFILE_NAME_BYTES: usize = 200;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PROFILE_EMAIL_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/profile_change_requests.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const MAX_PROFILE_EMAIL_BYTES: usize = 320;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SUBMISSION_CONTENT_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/submission_functions.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MAX_SUBMISSION_CONTENT_BYTES: usize = 100_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_management.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl ProvisionableRole {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn as_str(self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_provisioning.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl ProvisionableRole {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn as_str(self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNOWLEDGE_SOURCE_BUCKET` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/admin_knowledge_review_functions.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const KNOWLEDGE_SOURCE_BUCKET: &str = "edutalent-knowledge-sources";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_sha256` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/admin_knowledge_review_functions.rs:500:4
[INFO] [stdout]     |
[INFO] [stdout] 500 | fn is_sha256(value: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unavailable` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/class_section_functions.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn unavailable<T>() -> Result<T, ServerFnError> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `teacher_assignment_progress_state` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/dashboard_functions.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn teacher_assignment_progress_state(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `student_assignment_presentation_state` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/dashboard_functions.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn student_assignment_presentation_state(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unavailable` is never used
[INFO] [stdout]  --> packages/api/src/server_functions/invite_functions.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn unavailable<T>() -> Result<T, ServerFnError> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CONTEXT_KEY_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_functions.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const MAX_CONTEXT_KEY_BYTES: usize = 255;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SEARCH_QUERY_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_functions.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MAX_SEARCH_QUERY_BYTES: usize = 8_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_context` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/knowledge_functions.rs:521:4
[INFO] [stdout]     |
[INFO] [stdout] 521 | fn validate_context(scope: &str, key: &str) -> Result<(), ServerFnError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_submission` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/knowledge_functions.rs:539:4
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn validate_submission(request: &ManagerKnowledgeSubmissionRequest) -> Result<(), ServerFnError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNOWLEDGE_SOURCE_BUCKET` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_readiness.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const KNOWLEDGE_SOURCE_BUCKET: &str = "edutalent-knowledge-sources";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CONTEXT_KEY_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_selection_functions.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const MAX_CONTEXT_KEY_BYTES: usize = 255;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_context` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/knowledge_selection_functions.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn validate_context(scope: &str, key: &str) -> Result<(), ServerFnError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_NOTIFICATION_LIMIT` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/notification_functions.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const DEFAULT_NOTIFICATION_LIMIT: i64 = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NOTIFICATION_LIMIT` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/notification_functions.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const MAX_NOTIFICATION_LIMIT: i64 = 100;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NOTIFICATION_OFFSET` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/notification_functions.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MAX_NOTIFICATION_OFFSET: i64 = 10_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bounded_limit` is never used
[INFO] [stdout]    --> packages/api/src/server_functions/notification_functions.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn bounded_limit(limit: Option<i64>) -> i64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PROFILE_DIFF_BYTES` is never used
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAX_PROFILE_DIFF_BYTES: usize = 16_384;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PROFILE_NAME_BYTES` is never used
[INFO] [stdout]  --> packages/api/src/server_functions/profile_change_requests.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAX_PROFILE_NAME_BYTES: usize = 200;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PROFILE_EMAIL_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/profile_change_requests.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const MAX_PROFILE_EMAIL_BYTES: usize = 320;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SUBMISSION_CONTENT_BYTES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/submission_functions.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MAX_SUBMISSION_CONTENT_BYTES: usize = 100_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProvisionableRole` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_management.rs:25:6
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum ProvisionableRole {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `parse` and `as_str` are never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_management.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl ProvisionableRole {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 32 |     fn parse(value: &str) -> Option<Self> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn as_str(self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_LANGUAGES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const SUPPORTED_LANGUAGES: &[&str] = &["fa", "en"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_TIMEZONES` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const SUPPORTED_TIMEZONES: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_DATE_FORMATS` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const SUPPORTED_DATE_FORMATS: &[&str] = &["YYYY-MM-DD", "MM/DD/YYYY", "DD/MM/YYYY", "DD.MM.YYYY"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_TIME_FORMATS` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const SUPPORTED_TIME_FORMATS: &[&str] = &["24h", "12h"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_general` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn validate_general(request: &UpdateGeneralSettingsRequest) -> Result<(), ServerFnError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_notification_request` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_preferences_functions.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn normalize_notification_request(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProvisionableRole` is never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_provisioning.rs:40:6
[INFO] [stdout]    |
[INFO] [stdout] 40 | enum ProvisionableRole {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `parse` and `as_str` are never used
[INFO] [stdout]   --> packages/api/src/server_functions/user_provisioning.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl ProvisionableRole {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 47 |     fn parse(value: &str) -> Option<Self> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn as_str(self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ui v0.1.0 (/opt/rustwide/workdir/packages/ui)
[INFO] [stderr]    Compiling web v0.3.0 (/opt/rustwide/workdir/packages/web)
[INFO] [stdout] warning: unused import: `AccessControl`
[INFO] [stdout]  --> packages/web/src/application/routing_service.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::domain::{AccessControl, SystemRole, User};
[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: `validation::*`
[INFO] [stdout]  --> packages/web/src/components/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use validation::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `auth::*`
[INFO] [stdout]  --> packages/web/src/components/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use auth::*;
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `skeleton::*`
[INFO] [stdout]  --> packages/web/src/components/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use skeleton::*;
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dashboard_skeleton::*`
[INFO] [stdout]  --> packages/web/src/components/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use dashboard_skeleton::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `validation::*`
[INFO] [stdout]  --> packages/web/src/utils/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use validation::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `auth::*`
[INFO] [stdout]  --> packages/web/src/utils/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use auth::*;
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cache::*`
[INFO] [stdout]  --> packages/web/src/utils/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use cache::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `login::LoginPage`
[INFO] [stdout]  --> packages/web/src/views/mod.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use login::LoginPage;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error_boundary::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/components/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use error_boundary::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `loading_spinner::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/components/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use loading_spinner::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `navigation::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/components/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use navigation::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `role_guard::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/components/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use role_guard::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `children::*`
[INFO] [stdout]  --> packages/web/src/views/role_based/parent/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use children::*;
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `communication::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/parent/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use communication::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reports::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/parent/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use reports::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SkeletonCard`
[INFO] [stdout]  --> packages/web/src/views/role_based/school_manager/user_management.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::components::skeleton::{SkeletonCard, SkeletonTable};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LocalStorage`
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/user_management.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use gloo_storage::{LocalStorage, Storage};
[INFO] [stdout]    |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SchoolManagerOverviewSection`
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/mod.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use dashboard::{SchoolManagerDashboard, SchoolManagerOverviewSection};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `charts::*`
[INFO] [stdout]  --> packages/web/src/views/role_based/shared/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use charts::*;
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `common::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use common::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `forms::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use forms::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tables::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use tables::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `classes::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/student/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use classes::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assignments::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/student/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use assignments::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `grades::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/student/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use grades::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `schedule::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/student/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use schedule::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TeacherAssignmentClassOption`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/assignments.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     TeacherAssignmentClassOption,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassMaterialInfo` and `ClassStudentInfo`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/classes.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 |     get_vectorization_status, ClassMaterialInfo, ClassStudentInfo, TeacherClassView,
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StudentGradeDetail`
[INFO] [stdout]  --> packages/web/src/views/role_based/teacher/students.rs:6:59
[INFO] [stdout]   |
[INFO] [stdout] 6 |     get_student_grades_for_teacher, get_teacher_students, StudentGradeDetail, TeacherStudentInfo,
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_submissions_for_assignment`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/submissions.rs:10:42
[INFO] [stdout]    |
[INFO] [stdout] 10 |     get_pending_submissions_for_teacher, get_submissions_for_assignment, grade_submission,
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assignments::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use assignments::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `classes::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use classes::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TeacherOverviewSection`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use dashboard::{TeacherDashboard, TeacherOverviewSection};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `personalization_status::PersonalizationQueueStatusPanel`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use personalization_status::PersonalizationQueueStatusPanel;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `students::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use students::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `submissions::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/teacher/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use submissions::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `components::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use components::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ManagerKnowledgeSubmissionsSection` and `TeacherKnowledgeAssetsSection`
[INFO] [stdout]   --> packages/web/src/views/role_based/mod.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use knowledge::{ManagerKnowledgeSubmissionsSection, TeacherKnowledgeAssetsSection};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared::*`
[INFO] [stdout]   --> packages/web/src/views/role_based/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use shared::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `role_based::*`
[INFO] [stdout]  --> packages/web/src/views/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use role_based::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils`
[INFO] [stdout]   --> packages/web/src/views/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::utils;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::components`
[INFO] [stdout]   --> packages/web/src/views/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::components;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> packages/web/src/main.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, Routable, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        unreachable call
[INFO] [stdout]    |                        any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Routable` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Storage`
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/user_management.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use gloo_storage::{LocalStorage, Storage};
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:419:14
[INFO] [stdout]     |
[INFO] [stdout] 419 |         for (index, part) in parts.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/knowledge.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |     let mut provider = use_signal(|| "manual-verified".to_string());
[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: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let mut selected_ocr_asset = use_signal(|| None::<OcrEditorState>);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let mut pending_ocr_asset = use_signal(|| None::<(String, String)>);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 |     let mut pending_archive = use_signal(|| None::<(String, String, String)>);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let mut discard_ocr_confirmation = use_signal(|| false);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let mut archive_confirmation = use_signal(|| None::<(String, String, String)>);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let mut ocr_text = use_signal(String::new);
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let mut provider = use_signal(|| "manual-verified".to_string());
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let mut busy = use_signal(|| false);
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let mut notice = use_signal(|| None::<&'static str>);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut assets =
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:880:5
[INFO] [stdout]     |
[INFO] [stdout] 880 |     mut selected_ocr_asset: Signal<Option<OcrEditorState>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin.rs:881:5
[INFO] [stdout]     |
[INFO] [stdout] 881 |     mut ocr_text: Signal<String>,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/platform_admin_personalization.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |     let mut teachers = use_resource(move || {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/knowledge_upload.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut form_epoch = use_signal(|| 0_u64);
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/knowledge_upload.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut readiness =
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/user_creation.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut active_tab = use_signal(|| "Student".to_string());
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locale`
[INFO] [stdout]   --> packages/web/src/views/role_based/school_manager/user_creation.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let locale = use_locale();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_locale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/submission_files.rs:200:21
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 let file=file.clone();busy.set(true);error.set(false);
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/teacher/assignments.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 309 |     let mut title = use_signal(String::new);
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> packages/web/src/views/role_based/teacher/assignments.rs:313:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     let mut due_date = use_signal(String::new);
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material_id`
[INFO] [stdout]    --> packages/web/src/views/role_based/teacher/classes.rs:467:45
[INFO] [stdout]     |
[INFO] [stdout] 467 | ...                   let material_id = material.id.clone();
[INFO] [stdout]     |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]   --> packages/web/src/application/auth_service.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl AppAuthService {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub async fn logout() -> Result<(), AuthError> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub async fn get_current_user() -> Result<Option<User>, AuthError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub async fn is_authenticated() -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub async fn refresh_session() -> Result<UserSession, AuthError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub async fn has_role(required_role: SystemRole) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub async fn has_any_role(required_roles: &[SystemRole]) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub async fn has_permission(permission: &str) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `use_has_role`, `use_has_permission`, `use_auth_error`, `set_auth_error`, and `clear_auth_error` are never used
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl AuthHooks {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn use_has_role(required_role: SystemRole) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn use_has_permission(permission: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn use_auth_error() -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn set_auth_error(error: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn clear_auth_error() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RoleGuard` is never constructed
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct RoleGuard;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `require_role`, `require_any_role`, and `require_permission` are never used
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl RoleGuard {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] 133 |     /// Component that only renders if user has required role
[INFO] [stdout] 134 |     pub fn require_role(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn require_any_role(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn require_permission(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthUtils` is never constructed
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:229:12
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub struct AuthUtils;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_login_redirect`, `format_role_display`, `validate_session`, and `handle_auth_error` are never used
[INFO] [stdout]    --> packages/web/src/application/auth_service.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl AuthUtils {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] 232 |     /// Get redirect URL after successful login based on user role
[INFO] [stdout] 233 |     pub fn get_login_redirect(user: &User) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn format_role_display(role: &SystemRole) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub async fn validate_session() -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn handle_auth_error(error: &AuthError) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_role_based_route`, `get_active_navigation_item`, and `redirect_to_role_dashboard` are never used
[INFO] [stdout]    --> packages/web/src/application/routing_service.rs:15:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl RoutingService {
[INFO] [stdout]     | ------------------- associated functions in this implementation
[INFO] [stdout]  15 |     pub fn get_role_based_route(_user: &User) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn get_active_navigation_item<'a>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn redirect_to_role_dashboard(user: &User) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_active` is never used
[INFO] [stdout]    --> packages/web/src/application/routing_service.rs:338:12
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl NavigationItem {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn with_active(mut self, active: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RouteGuard` is never constructed
[INFO] [stdout]    --> packages/web/src/application/routing_service.rs:345:12
[INFO] [stdout]     |
[INFO] [stdout] 345 | pub struct RouteGuard;
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `require_route_access` is never used
[INFO] [stdout]    --> packages/web/src/application/routing_service.rs:348:12
[INFO] [stdout]     |
[INFO] [stdout] 347 | impl RouteGuard {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 348 |     pub fn require_route_access(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create_session`, `refresh_session`, `get_current_user`, `get_session_timeout`, and `needs_refresh` are never used
[INFO] [stdout]   --> packages/web/src/application/session_manager.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl SessionManager {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] 10 |     /// Initialize user session after successful authentication
[INFO] [stdout] 11 |     pub async fn create_session(session: UserSession) -> Result<(), AuthError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub async fn refresh_session() -> Result<UserSession, AuthError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub async fn get_current_user() -> Option<User> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn get_session_timeout() -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub async fn needs_refresh() -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionHooks` is never constructed
[INFO] [stdout]   --> packages/web/src/application/session_manager.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct SessionHooks;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `use_current_session`, `use_is_session_valid`, `use_session_expiry`, and `use_needs_refresh` are never used
[INFO] [stdout]    --> packages/web/src/application/session_manager.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl SessionHooks {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout]  72 |     /// Hook to get current session state
[INFO] [stdout]  73 |     pub fn use_current_session() -> Option<UserSession> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn use_is_session_valid() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn use_session_expiry() -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn use_needs_refresh() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `format_expiry_time`, `get_time_remaining`, and `is_session_expiring_soon` are never used
[INFO] [stdout]    --> packages/web/src/application/session_manager.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl SessionUtils {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 121 |     /// Format session expiry time for display
[INFO] [stdout] 122 |     pub fn format_expiry_time(expiry_str: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_time_remaining(expiry_str: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_session_expiring_soon(expiry_str: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_str` and `can_manage_users` are never used
[INFO] [stdout]   --> packages/web/src/domain/roles.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl SystemRole {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn can_manage_users(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_role` and `is_administrative` are never used
[INFO] [stdout]   --> packages/web/src/domain/user.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl User {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn has_role(&self, role: &SystemRole) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn is_administrative(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_expired` is never used
[INFO] [stdout]    --> packages/web/src/domain/user.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl UserSession {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn is_expired(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpdateUserProfile` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/user.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct UpdateUserProfile {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UserInfo` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/user.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct UserInfo {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_redirect_path` and `get_error_message` are never used
[INFO] [stdout]   --> packages/web/src/domain/auth.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl AuthService {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn get_redirect_path(role: &SystemRole) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn get_error_message(error: &AuthError) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PasswordResetRequest` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/auth.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct PasswordResetRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PasswordResetConfirmation` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/auth.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct PasswordResetConfirmation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PasswordChangeRequest` is never constructed
[INFO] [stdout]    --> packages/web/src/domain/auth.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct PasswordChangeRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_accessible_routes` is never used
[INFO] [stdout]    --> packages/web/src/domain/auth.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | impl AccessControl {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn get_accessible_routes(user: &User) -> Vec<&'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_grade` is never used
[INFO] [stdout]    --> packages/web/src/i18n/grading.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn validate_grade(value: f64, locale: Locale) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCALE_STORAGE_KEY` is never used
[INFO] [stdout]   --> packages/web/src/i18n/provider.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const LOCALE_STORAGE_KEY: &str = "edutalent_locale";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_use_locale` is never used
[INFO] [stdout]   --> packages/web/src/i18n/provider.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn try_use_locale() -> Option<LocaleContext> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assignment_status_label` is never used
[INFO] [stdout]    --> packages/web/src/i18n/ui_translations.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn assignment_status_label(value: &str, locale: Locale) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `is_authenticated` and `refresh_session` are never used
[INFO] [stdout]    --> packages/web/src/infrastructure/auth_provider.rs:141:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl AuthProvider {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub async fn is_authenticated() -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub async fn refresh_session() -> Result<UserSession, AuthError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `is_authenticated` is never used
[INFO] [stdout]    --> packages/web/src/infrastructure/auth_provider.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl AuthState {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn is_authenticated() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `disabled` are never used
[INFO] [stdout]   --> packages/web/src/ui/forms.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl SelectOption {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 41 |     pub fn new(value: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn disabled(mut self, disabled: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_error`, `clear_field_error`, `clear_all_errors`, `has_field_error`, and `get_field_error` are never used
[INFO] [stdout]   --> packages/web/src/utils/validation.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl FormValidationState {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 20 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn add_error(&mut self, field: String, message: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn clear_field_error(&mut self, field: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn clear_all_errors(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn has_field_error(&self, field: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn get_field_error(&self, field: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationRule` is never constructed
[INFO] [stdout]   --> packages/web/src/utils/validation.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ValidationRule {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> packages/web/src/utils/validation.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl ValidationRule {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 88 |     pub fn validate(&self, value: &str) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FormValidator` is never constructed
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct FormValidator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_rule`, and `validate_form` are never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl FormValidator {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 146 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn add_rule(mut self, rule: ValidationRule) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn validate_form(&self, data: &std::collections::HashMap<String, String>) -> FormValidationState {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_form_validation` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn use_form_validation() -> Signal<FormValidationState> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_field` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn required_field(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_name` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 191 |     pub fn required_name(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_email` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub fn required_email(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optional_phone` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:215:12
[INFO] [stdout]     |
[INFO] [stdout] 215 |     pub fn optional_phone(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grade_level` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 227 |     pub fn grade_level(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_text` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:239:12
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn required_text(field: &str, min: usize, max: usize) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optional_text` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:251:12
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn optional_text(field: &str, min: usize, max: usize) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_uuid` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 263 |     pub fn required_uuid(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optional_uuid` is never used
[INFO] [stdout]    --> packages/web/src/utils/validation.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 275 |     pub fn optional_uuid(field: &str) -> ValidationRule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthState` is never constructed
[INFO] [stdout]  --> packages/web/src/utils/auth.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct AuthState {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_auth` is never used
[INFO] [stdout]   --> packages/web/src/utils/auth.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn use_auth() -> Resource<Option<api::domain::UserInfo>> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trigger_logout` is never used
[INFO] [stdout]   --> packages/web/src/utils/auth.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn trigger_logout() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `invalidate_subjects` is never used
[INFO] [stdout]   --> packages/web/src/utils/cache.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl AppCache {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn invalidate_subjects(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorBoundaryHooks` is never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/components/error_boundary.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct ErrorBoundaryHooks;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `use_async_error_handler`, `use_clear_error`, and `use_has_error` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/error_boundary.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl ErrorBoundaryHooks {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 117 |     pub fn use_async_error_handler() -> EventHandler<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn use_clear_error() -> impl FnMut() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn use_has_error() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AppError` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/error_boundary.rs:140:10
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub enum AppError {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `user_message` and `error_type` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/error_boundary.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl AppError {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn user_message(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn error_type(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `current`, and `with_click` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl BreadcrumbItem {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 127 |     pub fn new(label: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn current(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn with_click(mut self, on_click: EventHandler<()>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_icon`, and `with_badge` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl TabItem {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 216 |     pub fn new(id: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn with_icon(mut self, icon: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn with_badge(mut self, badge: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_description`, `with_icon`, and `with_click` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:304:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | impl QuickAction {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 304 |     pub fn new(id: impl Into<String>, title: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn with_description(mut self, description: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn with_icon(mut self, icon: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     pub fn with_click(mut self, on_click: EventHandler<()>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NavigationUtils` is never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 407 | pub struct NavigationUtils;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `breadcrumbs_from_route` and `format_route_part` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/components/navigation.rs:411:12
[INFO] [stdout]     |
[INFO] [stdout] 409 | impl NavigationUtils {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] 410 |     /// Generate breadcrumb items from a route path
[INFO] [stdout] 411 |     pub fn breadcrumbs_from_route(route: &str) -> Vec<BreadcrumbItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     fn format_route_part(part: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optional_text` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/knowledge.rs:510:4
[INFO] [stdout]     |
[INFO] [stdout] 510 | fn optional_text(value: String) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `metadata_line` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/knowledge.rs:515:4
[INFO] [stdout]     |
[INFO] [stdout] 515 | fn metadata_line(subject: &Option<String>, grade: &Option<String>, language: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replacement_error_message` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:491:4
[INFO] [stdout]     |
[INFO] [stdout] 491 | fn replacement_error_message(status: u16, fa: bool) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_form_error` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn source_form_error(f: bool) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replacement_success` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:574:4
[INFO] [stdout]     |
[INFO] [stdout] 574 | fn replacement_success(f: bool) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `storage_error` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:581:4
[INFO] [stdout]     |
[INFO] [stdout] 581 | fn storage_error(f: bool) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/charts.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl ChartItem {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 154 |     pub fn new(label: impl Into<String>, value: f32, color: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Warning` and `Gray` are never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub enum BadgeVariant {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] 125 |     Success,
[INFO] [stdout] 126 |     Warning,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     Gray,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BadgeVariant` 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: variants `Success`, `Warning`, and `Danger` are never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:200:5
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub enum ButtonVariant {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 200 |     Success,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 201 |     Warning,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 202 |     Danger,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ButtonVariant` 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: variant `Large` is never constructed
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:210:5
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum ButtonSize {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 210 |     Large,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ButtonSize` 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 `new` is never used
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/forms.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl SelectOption {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 72 |     pub fn new(value: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/tables.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl TableColumn {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 40 |     pub fn new(key: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_cell` and `get_cell_value` are never used
[INFO] [stdout]   --> packages/web/src/views/role_based/shared/tables.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl TableRow {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn with_cell(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn get_cell_value(&self, key: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_change`, and `with_icon` are never used
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/tables.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl StatItem {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 105 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn with_change(mut self, change: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_icon(mut self, icon: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `className` should have a snake case name
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     className: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `class_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `className` should have a snake case name
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     className: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `className` should have a snake case name
[INFO] [stdout]    --> packages/web/src/views/role_based/shared/common.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     className: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `validator`
[INFO] [stderr]   --> packages/api/Cargo.toml:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | validator = { workspace = true }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `validator`
[INFO] [stderr] warning: `api` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `api`
[INFO] [stderr]  --> packages/ui/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | api = { workspace = true }
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `api`
[INFO] [stderr] warning: `ui` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `parsidate`
[INFO] [stderr]   --> packages/web/Cargo.toml:38:1
[INFO] [stderr]    |
[INFO] [stderr] 38 | parsidate = "1.7"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `parsidate`
[INFO] [stderr] warning: unused dependency `ui`
[INFO] [stderr]  --> packages/web/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | ui = { workspace = true }
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `ui`
[INFO] [stderr] warning: `web` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized] target(s) in 53.20s
[INFO] running `Command { std: "docker" "inspect" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `axum`
[INFO] [stderr]   --> Cargo.toml:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | axum = "0.8.7"
[INFO] [stderr]    | ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `axum`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]    Compiling api v0.2.0 (/opt/rustwide/workdir/packages/api)
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_BEGIN src/db/authorized_pool.rs
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_MISSING src/db/authorized_pool.rs: No such file or directory (os error 2)
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_END src/db/authorized_pool.rs
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_BEGIN src/bin/knowledge-ingestion-worker.rs
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_MISSING src/bin/knowledge-ingestion-worker.rs: No such file or directory (os error 2)
[INFO] [stderr] warning: api@0.2.0: EDUTALENT_DIAGNOSTIC_END src/bin/knowledge-ingestion-worker.rs
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/models/mod.rs:29:9
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub use student::*;
[INFO] [stderr]    |         ^^^^^^^^^^ the name `UserInfo` in the type namespace is first re-exported here
[INFO] [stderr] ...
[INFO] [stderr] 41 | pub use audit_log::*;
[INFO] [stderr]    |         ------------ but the name `UserInfo` in the type namespace is also re-exported here
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/models/mod.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub use assignment::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^ the name `TeacherInfo` in the type namespace is first re-exported here
[INFO] [stderr] ...
[INFO] [stderr] 38 | pub use report::*;
[INFO] [stderr]    |         --------- but the name `TeacherInfo` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/models/mod.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub use assignment::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^ the name `ClassSectionInfo` in the type namespace is first re-exported here
[INFO] [stderr] ...
[INFO] [stderr] 35 | pub use teaching_assignment::*;
[INFO] [stderr]    |         ---------------------- but the name `ClassSectionInfo` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/models/mod.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub use enrollment::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^ the name `StudentInfo` in the type namespace is first re-exported here
[INFO] [stderr] ...
[INFO] [stderr] 38 | pub use report::*;
[INFO] [stderr]    |         --------- but the name `StudentInfo` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `user` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `user` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `student` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `student` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `assignment` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `assignment` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `submission` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `submission` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `invite` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `invite` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `school` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `school` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `subject` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `subject` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `class_section` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `class_section` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `UserInfo` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `UserInfo` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `User` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `User` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `Student` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `Student` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `Assignment` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `Assignment` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `Submission` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `Submission` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `Invite` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `Invite` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `School` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `School` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `Subject` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `Subject` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> packages/api/src/lib.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use domain::*;
[INFO] [stderr]    |         ^^^^^^^^^ the name `ClassSection` in the type namespace is first re-exported here
[INFO] [stderr] 12 | pub use models::*;
[INFO] [stderr]    |         --------- but the name `ClassSection` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stderr]  --> packages/api/src/server_functions/admin_functions.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::dioxus_fullstack::extract`
[INFO] [stderr]  --> packages/api/src/server_functions/admin_functions.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stderr]  --> packages/api/src/server_functions/auth_functions.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use dioxus::fullstack::extract;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::dioxus_fullstack::extract`
[INFO] [stderr]  --> packages/api/src/server_functions/class_functions.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ClassSectionId`, `SchoolId`, and `SubjectId`
[INFO] [stderr]  --> packages/api/src/server_functions/class_functions.rs:8:21
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::domain::{ClassSectionId, SchoolId, SubjectId};
[INFO] [stderr]   |                     ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ClassSectionWithSubject` and `CreateClassSectionRequest`
[INFO] [stderr]  --> packages/api/src/server_functions/class_functions.rs:9:21
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::models::{ClassSectionWithSubject, CreateClassSectionRequest};
[INFO] [stderr]   |                     ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stderr]  --> packages/api/src/server_functions/notification_functions.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use dioxus::fullstack::extract;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ProfileChangeRequestId`, `SchoolId`, and `UserId`
[INFO] [stderr]  --> packages/api/src/server_functions/profile_change_requests.rs:1:32
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::domain::{PcrStatus, ProfileChangeRequestId, SchoolId, UserId};
[INFO] [stderr]   |                                ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CreateProfileChangeRequestRequest` and `DecideProfileChangeRequestRequest`
[INFO] [stderr]  --> packages/api/src/server_functions/profile_change_requests.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     CreateProfileChangeRequestRequest, DecideProfileChangeRequestRequest,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `SchoolId`, `StudentId`, and `UserId`
[INFO] [stderr]  --> packages/api/src/server_functions/student_functions.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::domain::{SchoolId, StudentId, UserId};
[INFO] [stderr]   |                     ^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CreateSubjectRequest` and `UpdateSubjectRequest`
[INFO] [stderr]  --> packages/api/src/server_functions/subject_functions.rs:7:21
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::models::{CreateSubjectRequest, Subject, UpdateSubjectRequest};
[INFO] [stderr]   |                     ^^^^^^^^^^^^^^^^^^^^           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `dioxus::fullstack::extract`
[INFO] [stderr]  --> packages/api/src/server_functions/submission_functions.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use dioxus::fullstack::extract;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ParentId`, `RoleId`, `SchoolId`, and `UserId`
[INFO] [stderr]  --> packages/api/src/server_functions/user_creation.rs:5:21
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::domain::{UserId, SchoolId, RoleId, ParentId};
[INFO] [stderr]   |                     ^^^^^^  ^^^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `validate_email_uniqueness` and `validate_uuid_exists`
[INFO] [stderr]  --> packages/api/src/server_functions/user_creation.rs:6:42
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::server_functions::form_data::{validate_email_uniqueness, validate_uuid_exists};
[INFO] [stderr]   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AdminCreateParentRequest`, `AdminCreateStudentRequest`, and `AdminCreateTeacherRequest`
[INFO] [stderr]  --> packages/api/src/server_functions/user_creation.rs:7:27
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::models::user::{AdminCreateStudentRequest, AdminCreateTeacherRequest, AdminCreateParentRequest};
[INFO] [stderr]   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]  --> packages/api/src/server_functions/user_creation.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::sync::Arc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `uuid::Uuid`
[INFO] [stderr]  --> packages/api/src/server_functions/user_creation.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use uuid::Uuid;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `RoleId`, `SchoolId`, and `UserId`
[INFO] [stderr]  --> packages/api/src/server_functions/user_functions.rs:4:21
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::domain::{UserId, RoleId, SchoolId};
[INFO] [stderr]   |                     ^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::dioxus_fullstack::extract`
[INFO] [stderr]  --> packages/api/src/server_functions/user_management.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::dioxus_fullstack::extract;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `RoleId`, `SchoolId`, and `UserId`
[INFO] [stderr]  --> packages/api/src/server_functions/user_management.rs:2:21
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::domain::{RoleId, SchoolId, UserId};
[INFO] [stderr]   |                     ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stderr]  --> packages/api/src/server_functions/admin_functions.rs:5:30
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stderr]   |                              ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stderr]  --> packages/api/src/server_functions/auth_functions.rs:1:24
[INFO] [stderr]   |
[INFO] [stderr] 1 | use dioxus::fullstack::extract;
[INFO] [stderr]   |                        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stderr]  --> packages/api/src/server_functions/class_functions.rs:5:30
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::dioxus_fullstack::extract;
[INFO] [stderr]   |                              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stderr]  --> packages/api/src/server_functions/notification_functions.rs:2:24
[INFO] [stderr]   |
[INFO] [stderr] 2 | use dioxus::fullstack::extract;
[INFO] [stderr]   |                        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stderr]  --> packages/api/src/server_functions/submission_functions.rs:3:24
[INFO] [stderr]   |
[INFO] [stderr] 3 | use dioxus::fullstack::extract;
[INFO] [stderr]   |                        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated unit struct `server_functions::user_functions::_::GetUserById`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stderr]   --> packages/api/src/server_functions/user_functions.rs:45:10
[INFO] [stderr]    |
[INFO] [stderr] 45 | #[server(GetUserById, endpoint = "users/get_by_id")]
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated unit struct `server_functions::user_functions::_::CreateUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stderr]   --> packages/api/src/server_functions/user_functions.rs:68:10
[INFO] [stderr]    |
[INFO] [stderr] 68 | #[server(CreateUser, endpoint = "users/create")]
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated unit struct `server_functions::user_functions::_::UpdateUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stderr]   --> packages/api/src/server_functions/user_functions.rs:87:10
[INFO] [stderr]    |
[INFO] [stderr] 87 | #[server(UpdateUser, endpoint = "users/update")]
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated unit struct `server_functions::user_functions::_::DeleteUser`: Dioxus server functions no longer generate a struct for the server function. The function itself is used directly.
[INFO] [stderr]    --> packages/api/src/server_functions/user_functions.rs:107:10
[INFO] [stderr]     |
[INFO] [stderr] 107 | #[server(DeleteUser, endpoint = "users/delete")]
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `dioxus::dioxus_fullstack::extract`: Use FullstackContext::extract instead
[INFO] [stderr]  --> packages/api/src/server_functions/user_management.rs:1:30
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::dioxus_fullstack::extract;
[INFO] [stderr]   |                              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super`
[INFO] [stderr]    --> packages/api/src/server_functions/profile_change_requests.rs:276:9
[INFO] [stderr]     |
[INFO] [stderr] 276 |     use super::*;
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unavailable` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/class_section_functions.rs:10:4
[INFO] [stderr]    |
[INFO] [stderr] 10 | fn unavailable<T>() -> Result<T, ServerFnError> {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `unavailable` is never used
[INFO] [stderr]  --> packages/api/src/server_functions/invite_functions.rs:9:4
[INFO] [stderr]   |
[INFO] [stderr] 9 | fn unavailable<T>() -> Result<T, ServerFnError> {
[INFO] [stderr]   |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_SEARCH_QUERY_BYTES` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/knowledge_functions.rs:33:7
[INFO] [stderr]    |
[INFO] [stderr] 33 | const MAX_SEARCH_QUERY_BYTES: usize = 8_000;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_submission` is never used
[INFO] [stderr]    --> packages/api/src/server_functions/knowledge_functions.rs:539:4
[INFO] [stderr]     |
[INFO] [stderr] 539 | fn validate_submission(request: &ManagerKnowledgeSubmissionRequest) -> Result<(), ServerFnError> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_CONTEXT_KEY_BYTES` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/knowledge_selection_functions.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const MAX_CONTEXT_KEY_BYTES: usize = 255;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_context` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/knowledge_selection_functions.rs:54:4
[INFO] [stderr]    |
[INFO] [stderr] 54 | fn validate_context(scope: &str, key: &str) -> Result<(), ServerFnError> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_NOTIFICATION_OFFSET` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/notification_functions.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const MAX_NOTIFICATION_OFFSET: i64 = 10_000;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_PROFILE_DIFF_BYTES` is never used
[INFO] [stderr]  --> packages/api/src/server_functions/profile_change_requests.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const MAX_PROFILE_DIFF_BYTES: usize = 16_384;
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_PROFILE_NAME_BYTES` is never used
[INFO] [stderr]  --> packages/api/src/server_functions/profile_change_requests.rs:9:7
[INFO] [stderr]   |
[INFO] [stderr] 9 | const MAX_PROFILE_NAME_BYTES: usize = 200;
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_PROFILE_EMAIL_BYTES` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/profile_change_requests.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const MAX_PROFILE_EMAIL_BYTES: usize = 320;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_SUBMISSION_CONTENT_BYTES` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/submission_functions.rs:20:7
[INFO] [stderr]    |
[INFO] [stderr] 20 | const MAX_SUBMISSION_CONTENT_BYTES: usize = 100_000;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_str` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_management.rs:41:8
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl ProvisionableRole {
[INFO] [stderr]    | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 41 |     fn as_str(self) -> &'static str {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_str` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_provisioning.rs:56:8
[INFO] [stderr]    |
[INFO] [stderr] 46 | impl ProvisionableRole {
[INFO] [stderr]    | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 56 |     fn as_str(self) -> &'static str {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KNOWLEDGE_SOURCE_BUCKET` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/admin_knowledge_review_functions.rs:16:7
[INFO] [stderr]    |
[INFO] [stderr] 16 | const KNOWLEDGE_SOURCE_BUCKET: &str = "edutalent-knowledge-sources";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_sha256` is never used
[INFO] [stderr]    --> packages/api/src/server_functions/admin_knowledge_review_functions.rs:500:4
[INFO] [stderr]     |
[INFO] [stderr] 500 | fn is_sha256(value: &str) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unavailable` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/class_section_functions.rs:10:4
[INFO] [stderr]    |
[INFO] [stderr] 10 | fn unavailable<T>() -> Result<T, ServerFnError> {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `teacher_assignment_progress_state` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/dashboard_functions.rs:64:4
[INFO] [stderr]    |
[INFO] [stderr] 64 | fn teacher_assignment_progress_state(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `student_assignment_presentation_state` is never used
[INFO] [stderr]    --> packages/api/src/server_functions/dashboard_functions.rs:156:4
[INFO] [stderr]     |
[INFO] [stderr] 156 | fn student_assignment_presentation_state(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_CONTEXT_KEY_BYTES` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/knowledge_functions.rs:32:7
[INFO] [stderr]    |
[INFO] [stderr] 32 | const MAX_CONTEXT_KEY_BYTES: usize = 255;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_context` is never used
[INFO] [stderr]    --> packages/api/src/server_functions/knowledge_functions.rs:521:4
[INFO] [stderr]     |
[INFO] [stderr] 521 | fn validate_context(scope: &str, key: &str) -> Result<(), ServerFnError> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KNOWLEDGE_SOURCE_BUCKET` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/knowledge_readiness.rs:13:7
[INFO] [stderr]    |
[INFO] [stderr] 13 | const KNOWLEDGE_SOURCE_BUCKET: &str = "edutalent-knowledge-sources";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_NOTIFICATION_LIMIT` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/notification_functions.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const DEFAULT_NOTIFICATION_LIMIT: i64 = 10;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_NOTIFICATION_LIMIT` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/notification_functions.rs:18:7
[INFO] [stderr]    |
[INFO] [stderr] 18 | const MAX_NOTIFICATION_LIMIT: i64 = 100;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bounded_limit` is never used
[INFO] [stderr]    --> packages/api/src/server_functions/notification_functions.rs:185:4
[INFO] [stderr]     |
[INFO] [stderr] 185 | fn bounded_limit(limit: Option<i64>) -> i64 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ProvisionableRole` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_management.rs:25:6
[INFO] [stderr]    |
[INFO] [stderr] 25 | enum ProvisionableRole {
[INFO] [stderr]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `parse` and `as_str` are never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_management.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl ProvisionableRole {
[INFO] [stderr]    | ---------------------- associated items in this implementation
[INFO] [stderr] 32 |     fn parse(value: &str) -> Option<Self> {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     fn as_str(self) -> &'static str {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SUPPORTED_LANGUAGES` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_preferences_functions.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const SUPPORTED_LANGUAGES: &[&str] = &["fa", "en"];
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SUPPORTED_TIMEZONES` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_preferences_functions.rs:20:7
[INFO] [stderr]    |
[INFO] [stderr] 20 | const SUPPORTED_TIMEZONES: &[&str] = &[
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SUPPORTED_DATE_FORMATS` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_preferences_functions.rs:33:7
[INFO] [stderr]    |
[INFO] [stderr] 33 | const SUPPORTED_DATE_FORMATS: &[&str] = &["YYYY-MM-DD", "MM/DD/YYYY", "DD/MM/YYYY", "DD.MM.YYYY"];
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SUPPORTED_TIME_FORMATS` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_preferences_functions.rs:34:7
[INFO] [stderr]    |
[INFO] [stderr] 34 | const SUPPORTED_TIME_FORMATS: &[&str] = &["24h", "12h"];
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_general` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_preferences_functions.rs:61:4
[INFO] [stderr]    |
[INFO] [stderr] 61 | fn validate_general(request: &UpdateGeneralSettingsRequest) -> Result<(), ServerFnError> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `normalize_notification_request` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_preferences_functions.rs:85:4
[INFO] [stderr]    |
[INFO] [stderr] 85 | fn normalize_notification_request(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ProvisionableRole` is never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_provisioning.rs:40:6
[INFO] [stderr]    |
[INFO] [stderr] 40 | enum ProvisionableRole {
[INFO] [stderr]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `parse` and `as_str` are never used
[INFO] [stderr]   --> packages/api/src/server_functions/user_provisioning.rs:47:8
[INFO] [stderr]    |
[INFO] [stderr] 46 | impl ProvisionableRole {
[INFO] [stderr]    | ---------------------- associated items in this implementation
[INFO] [stderr] 47 |     fn parse(value: &str) -> Option<Self> {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     fn as_str(self) -> &'static str {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr]    Compiling ui v0.1.0 (/opt/rustwide/workdir/packages/ui)
[INFO] [stderr] warning: `api` (lib) generated 82 warnings (61 duplicates)
[INFO] [stderr]    Compiling web v0.3.0 (/opt/rustwide/workdir/packages/web)
[INFO] [stderr] warning: `api` (lib test) generated 65 warnings (run `cargo fix --lib -p api --tests` to apply 20 suggestions)
[INFO] [stderr] warning: unused import: `AccessControl`
[INFO] [stderr]  --> packages/web/src/application/routing_service.rs:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::domain::{AccessControl, SystemRole, User};
[INFO] [stderr]   |                     ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `validation::*`
[INFO] [stderr]  --> packages/web/src/components/mod.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub use validation::*;
[INFO] [stderr]   |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `auth::*`
[INFO] [stderr]  --> packages/web/src/components/mod.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use auth::*;
[INFO] [stderr]   |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `skeleton::*`
[INFO] [stderr]  --> packages/web/src/components/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use skeleton::*;
[INFO] [stderr]   |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `dashboard_skeleton::*`
[INFO] [stderr]  --> packages/web/src/components/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use dashboard_skeleton::*;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `validation::*`
[INFO] [stderr]  --> packages/web/src/utils/mod.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub use validation::*;
[INFO] [stderr]   |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `auth::*`
[INFO] [stderr]  --> packages/web/src/utils/mod.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub use auth::*;
[INFO] [stderr]   |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `cache::*`
[INFO] [stderr]  --> packages/web/src/utils/mod.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use cache::*;
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `login::LoginPage`
[INFO] [stderr]  --> packages/web/src/views/mod.rs:2:9
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub use login::LoginPage;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `error_boundary::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/components/mod.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub use error_boundary::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `loading_spinner::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/components/mod.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub use loading_spinner::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `navigation::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/components/mod.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub use navigation::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `role_guard::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/components/mod.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub use role_guard::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `children::*`
[INFO] [stderr]  --> packages/web/src/views/role_based/parent/mod.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use children::*;
[INFO] [stderr]   |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `communication::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/parent/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub use communication::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `reports::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/parent/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use reports::*;
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SkeletonCard`
[INFO] [stderr]  --> packages/web/src/views/role_based/school_manager/user_management.rs:1:35
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::components::skeleton::{SkeletonCard, SkeletonTable};
[INFO] [stderr]   |                                   ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `LocalStorage`
[INFO] [stderr]   --> packages/web/src/views/role_based/school_manager/user_management.rs:11:20
[INFO] [stderr]    |
[INFO] [stderr] 11 | use gloo_storage::{LocalStorage, Storage};
[INFO] [stderr]    |                    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SchoolManagerOverviewSection`
[INFO] [stderr]   --> packages/web/src/views/role_based/school_manager/mod.rs:14:45
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub use dashboard::{SchoolManagerDashboard, SchoolManagerOverviewSection};
[INFO] [stderr]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `charts::*`
[INFO] [stderr]  --> packages/web/src/views/role_based/shared/mod.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use charts::*;
[INFO] [stderr]   |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `common::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/shared/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub use common::*;
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `forms::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/shared/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use forms::*;
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tables::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/shared/mod.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub use tables::*;
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `classes::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/student/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub use classes::*;
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `assignments::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/student/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use assignments::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `grades::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/student/mod.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub use grades::*;
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `schedule::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/student/mod.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub use schedule::*;
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TeacherAssignmentClassOption`
[INFO] [stderr]   --> packages/web/src/views/role_based/teacher/assignments.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     TeacherAssignmentClassOption,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ClassMaterialInfo` and `ClassStudentInfo`
[INFO] [stderr]   --> packages/web/src/views/role_based/teacher/classes.rs:11:31
[INFO] [stderr]    |
[INFO] [stderr] 11 |     get_vectorization_status, ClassMaterialInfo, ClassStudentInfo, TeacherClassView,
[INFO] [stderr]    |                               ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StudentGradeDetail`
[INFO] [stderr]  --> packages/web/src/views/role_based/teacher/students.rs:6:59
[INFO] [stderr]   |
[INFO] [stderr] 6 |     get_student_grades_for_teacher, get_teacher_students, StudentGradeDetail, TeacherStudentInfo,
[INFO] [stderr]   |                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `get_submissions_for_assignment`
[INFO] [stderr]   --> packages/web/src/views/role_based/teacher/submissions.rs:10:42
[INFO] [stderr]    |
[INFO] [stderr] 10 |     get_pending_submissions_for_teacher, get_submissions_for_assignment, grade_submission,
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `assignments::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/teacher/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use assignments::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `classes::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/teacher/mod.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub use classes::*;
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TeacherOverviewSection`
[INFO] [stderr]   --> packages/web/src/views/role_based/teacher/mod.rs:13:39
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub use dashboard::{TeacherDashboard, TeacherOverviewSection};
[INFO] [stderr]    |                                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `personalization_status::PersonalizationQueueStatusPanel`
[INFO] [stderr]   --> packages/web/src/views/role_based/teacher/mod.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub use personalization_status::PersonalizationQueueStatusPanel;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `students::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/teacher/mod.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub use students::*;
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `submissions::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/teacher/mod.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub use submissions::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `components::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/mod.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub use components::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ManagerKnowledgeSubmissionsSection` and `TeacherKnowledgeAssetsSection`
[INFO] [stderr]   --> packages/web/src/views/role_based/mod.rs:14:21
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub use knowledge::{ManagerKnowledgeSubmissionsSection, TeacherKnowledgeAssetsSection};
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `shared::*`
[INFO] [stderr]   --> packages/web/src/views/role_based/mod.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub use shared::*;
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `role_based::*`
[INFO] [stderr]  --> packages/web/src/views/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use role_based::*;
[INFO] [stderr]   |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::utils`
[INFO] [stderr]   --> packages/web/src/views/mod.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::utils;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::components`
[INFO] [stderr]   --> packages/web/src/views/mod.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::components;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable call
[INFO] [stderr]   --> packages/web/src/main.rs:26:24
[INFO] [stderr]    |
[INFO] [stderr] 26 | #[derive(Debug, Clone, Routable, PartialEq)]
[INFO] [stderr]    |                        ^^^^^^^^
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        unreachable call
[INFO] [stderr]    |                        any code following this expression is unreachable
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]    = note: this warning originates in the derive macro `Routable` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Storage`
[INFO] [stderr]   --> packages/web/src/views/role_based/school_manager/user_management.rs:11:34
[INFO] [stderr]    |
[INFO] [stderr] 11 | use gloo_storage::{LocalStorage, Storage};
[INFO] [stderr]    |                                  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> packages/web/src/views/role_based/components/navigation.rs:419:14
[INFO] [stderr]     |
[INFO] [stderr] 419 |         for (index, part) in parts.iter().enumerate() {
[INFO] [stderr]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/knowledge.rs:232:9
[INFO] [stderr]     |
[INFO] [stderr] 232 |     let mut provider = use_signal(|| "manual-verified".to_string());
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:107:9
[INFO] [stderr]     |
[INFO] [stderr] 107 |     let mut selected_ocr_asset = use_signal(|| None::<OcrEditorState>);
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:108:9
[INFO] [stderr]     |
[INFO] [stderr] 108 |     let mut pending_ocr_asset = use_signal(|| None::<(String, String)>);
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:109:9
[INFO] [stderr]     |
[INFO] [stderr] 109 |     let mut pending_archive = use_signal(|| None::<(String, String, String)>);
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:110:9
[INFO] [stderr]     |
[INFO] [stderr] 110 |     let mut discard_ocr_confirmation = use_signal(|| false);
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:113:9
[INFO] [stderr]     |
[INFO] [stderr] 113 |     let mut archive_confirmation = use_signal(|| None::<(String, String, String)>);
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:114:9
[INFO] [stderr]     |
[INFO] [stderr] 114 |     let mut ocr_text = use_signal(String::new);
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:115:9
[INFO] [stderr]     |
[INFO] [stderr] 115 |     let mut provider = use_signal(|| "manual-verified".to_string());
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:116:9
[INFO] [stderr]     |
[INFO] [stderr] 116 |     let mut busy = use_signal(|| false);
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:117:9
[INFO] [stderr]     |
[INFO] [stderr] 117 |     let mut notice = use_signal(|| None::<&'static str>);
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:118:9
[INFO] [stderr]     |
[INFO] [stderr] 118 |     let mut assets =
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:880:5
[INFO] [stderr]     |
[INFO] [stderr] 880 |     mut selected_ocr_asset: Signal<Option<OcrEditorState>>,
[INFO] [stderr]     |     ----^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin.rs:881:5
[INFO] [stderr]     |
[INFO] [stderr] 881 |     mut ocr_text: Signal<String>,
[INFO] [stderr]     |     ----^^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/platform_admin_personalization.rs:182:9
[INFO] [stderr]     |
[INFO] [stderr] 182 |     let mut teachers = use_resource(move || {
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> packages/web/src/views/role_based/school_manager/knowledge_upload.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |     let mut form_epoch = use_signal(|| 0_u64);
[INFO] [stderr]    |         ----^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> packages/web/src/views/role_based/school_manager/knowledge_upload.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 22 |     let mut readiness =
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> packages/web/src/views/role_based/school_manager/user_creation.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let mut active_tab = use_signal(|| "Student".to_string());
[INFO] [stderr]    |         ----^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `locale`
[INFO] [stderr]   --> packages/web/src/views/role_based/school_manager/user_creation.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 |     let locale = use_locale();
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_locale`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file`
[INFO] [stderr]    --> packages/web/src/views/role_based/shared/submission_files.rs:200:21
[INFO] [stderr]     |
[INFO] [stderr] 200 |                 let file=file.clone();busy.set(true);error.set(false);
[INFO] [stderr]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/teacher/assignments.rs:309:9
[INFO] [stderr]     |
[INFO] [stderr] 309 |     let mut title = use_signal(String::new);
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> packages/web/src/views/role_based/teacher/assignments.rs:313:9
[INFO] [stderr]     |
[INFO] [stderr] 313 |     let mut due_date = use_signal(String::new);
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `material_id`
[INFO] [stderr]    --> packages/web/src/views/role_based/teacher/classes.rs:467:45
[INFO] [stderr]     |
[INFO] [stderr] 467 | ...                   let material_id = material.id.clone();
[INFO] [stderr]     |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material_id`
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated functions are never used
[INFO] [stderr]   --> packages/web/src/application/auth_service.rs:25:18
[INFO] [stderr]    |
[INFO] [stderr]  8 | impl AppAuthService {
[INFO] [stderr]    | ------------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub async fn logout() -> Result<(), AuthError> {
[INFO] [stderr]    |                  ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub async fn get_current_user() -> Result<Option<User>, AuthError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub async fn is_authenticated() -> bool {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub async fn refresh_session() -> Result<UserSession, AuthError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 45 |     pub async fn has_role(required_role: SystemRole) -> bool {
[INFO] [stderr]    |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub async fn has_any_role(required_roles: &[SystemRole]) -> bool {
[INFO] [stderr]    |                  ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub async fn has_permission(permission: &str) -> bool {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `use_has_role`, `use_has_permission`, `use_auth_error`, `set_auth_error`, and `clear_auth_error` are never used
[INFO] [stderr]    --> packages/web/src/application/auth_service.rs:89:12
[INFO] [stderr]     |
[INFO] [stderr]  75 | impl AuthHooks {
[INFO] [stderr]     | -------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  89 |     pub fn use_has_role(required_role: SystemRole) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  98 |     pub fn use_has_permission(permission: String) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub fn use_auth_error() -> Option<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 116 |     pub fn set_auth_error(error: String) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub fn clear_auth_error() {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RoleGuard` is never constructed
[INFO] [stderr]    --> packages/web/src/application/auth_service.rs:130:12
[INFO] [stderr]     |
[INFO] [stderr] 130 | pub struct RoleGuard;
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `require_role`, `require_any_role`, and `require_permission` are never used
[INFO] [stderr]    --> packages/web/src/application/auth_service.rs:134:12
[INFO] [stderr]     |
[INFO] [stderr] 132 | impl RoleGuard {
[INFO] [stderr]     | -------------- associated functions in this implementation
[INFO] [stderr] 133 |     /// Component that only renders if user has required role
[INFO] [stderr] 134 |     pub fn require_role(
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 163 |     pub fn require_any_role(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 200 |     pub fn require_permission(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AuthUtils` is never constructed
[INFO] [stderr]    --> packages/web/src/application/auth_service.rs:229:12
[INFO] [stderr]     |
[INFO] [stderr] 229 | pub struct AuthUtils;
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `get_login_redirect`, `format_role_display`, `validate_session`, and `handle_auth_error` are never used
[INFO] [stderr]    --> packages/web/src/application/auth_service.rs:233:12
[INFO] [stderr]     |
[INFO] [stderr] 231 | impl AuthUtils {
[INFO] [stderr]     | -------------- associated functions in this implementation
[INFO] [stderr] 232 |     /// Get redirect URL after successful login based on user role
[INFO] [stderr] 233 |     pub fn get_login_redirect(user: &User) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 238 |     pub fn format_role_display(role: &SystemRole) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 243 |     pub async fn validate_session() -> bool {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     pub fn handle_auth_error(error: &AuthError) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `get_role_based_route`, `get_active_navigation_item`, and `redirect_to_role_dashboard` are never used
[INFO] [stderr]    --> packages/web/src/application/routing_service.rs:15:12
[INFO] [stderr]     |
[INFO] [stderr]  14 | impl RoutingService {
[INFO] [stderr]     | ------------------- associated functions in this implementation
[INFO] [stderr]  15 |     pub fn get_role_based_route(_user: &User) -> &'static str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 285 |     pub fn get_active_navigation_item<'a>(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 294 |     pub fn redirect_to_role_dashboard(user: &User) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `with_active` is never used
[INFO] [stderr]    --> packages/web/src/application/routing_service.rs:338:12
[INFO] [stderr]     |
[INFO] [stderr] 308 | impl NavigationItem {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 338 |     pub fn with_active(mut self, active: bool) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RouteGuard` is never constructed
[INFO] [stderr]    --> packages/web/src/application/routing_service.rs:345:12
[INFO] [stderr]     |
[INFO] [stderr] 345 | pub struct RouteGuard;
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `require_route_access` is never used
[INFO] [stderr]    --> packages/web/src/application/routing_service.rs:348:12
[INFO] [stderr]     |
[INFO] [stderr] 347 | impl RouteGuard {
[INFO] [stderr]     | --------------- associated function in this implementation
[INFO] [stderr] 348 |     pub fn require_route_access(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `create_session`, `refresh_session`, `get_current_user`, `get_session_timeout`, and `needs_refresh` are never used
[INFO] [stderr]   --> packages/web/src/application/session_manager.rs:11:18
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl SessionManager {
[INFO] [stderr]    | ------------------- associated functions in this implementation
[INFO] [stderr] 10 |     /// Initialize user session after successful authentication
[INFO] [stderr] 11 |     pub async fn create_session(session: UserSession) -> Result<(), AuthError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub async fn refresh_session() -> Result<UserSession, AuthError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub async fn get_current_user() -> Option<User> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn get_session_timeout() -> u64 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 61 |     pub async fn needs_refresh() -> bool {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SessionHooks` is never constructed
[INFO] [stderr]   --> packages/web/src/application/session_manager.rs:69:12
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub struct SessionHooks;
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `use_current_session`, `use_is_session_valid`, `use_session_expiry`, and `use_needs_refresh` are never used
[INFO] [stderr]    --> packages/web/src/application/session_manager.rs:73:12
[INFO] [stderr]     |
[INFO] [stderr]  71 | impl SessionHooks {
[INFO] [stderr]     | ----------------- associated functions in this implementation
[INFO] [stderr]  72 |     /// Hook to get current session state
[INFO] [stderr]  73 |     pub fn use_current_session() -> Option<UserSession> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  89 |     pub fn use_is_session_valid() -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 104 |     pub fn use_session_expiry() -> Option<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub fn use_needs_refresh() -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `format_expiry_time`, `get_time_remaining`, and `is_session_expiring_soon` are never used
[INFO] [stderr]    --> packages/web/src/application/session_manager.rs:122:12
[INFO] [stderr]     |
[INFO] [stderr] 120 | impl SessionUtils {
[INFO] [stderr]     | ----------------- associated functions in this implementation
[INFO] [stderr] 121 |     /// Format session expiry time for display
[INFO] [stderr] 122 |     pub fn format_expiry_time(expiry_str: &str) -> Option<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 129 |     pub fn get_time_remaining(expiry_str: &str) -> Option<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn is_session_expiring_soon(expiry_str: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `as_str` and `can_manage_users` are never used
[INFO] [stderr]   --> packages/web/src/domain/roles.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl SystemRole {
[INFO] [stderr]    | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn as_str(&self) -> &'static str {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub fn can_manage_users(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `has_role` and `is_administrative` are never used
[INFO] [stderr]   --> packages/web/src/domain/user.rs:60:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl User {
[INFO] [stderr]    | --------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 60 |     pub fn has_role(&self, role: &SystemRole) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub fn is_administrative(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_expired` is never used
[INFO] [stderr]    --> packages/web/src/domain/user.rs:101:12
[INFO] [stderr]     |
[INFO] [stderr]  89 | impl UserSession {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub fn is_expired(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UpdateUserProfile` is never constructed
[INFO] [stderr]    --> packages/web/src/domain/user.rs:115:12
[INFO] [stderr]     |
[INFO] [stderr] 115 | pub struct UpdateUserProfile {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UserInfo` is never constructed
[INFO] [stderr]    --> packages/web/src/domain/user.rs:122:12
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub struct UserInfo {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `get_redirect_path` and `get_error_message` are never used
[INFO] [stderr]   --> packages/web/src/domain/auth.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl AuthService {
[INFO] [stderr]    | ---------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn get_redirect_path(role: &SystemRole) -> &'static str {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub fn get_error_message(error: &AuthError) -> &'static str {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PasswordResetRequest` is never constructed
[INFO] [stderr]    --> packages/web/src/domain/auth.rs:111:12
[INFO] [stderr]     |
[INFO] [stderr] 111 | pub struct PasswordResetRequest {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PasswordResetConfirmation` is never constructed
[INFO] [stderr]    --> packages/web/src/domain/auth.rs:116:12
[INFO] [stderr]     |
[INFO] [stderr] 116 | pub struct PasswordResetConfirmation {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PasswordChangeRequest` is never constructed
[INFO] [stderr]    --> packages/web/src/domain/auth.rs:122:12
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub struct PasswordChangeRequest {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `get_accessible_routes` is never used
[INFO] [stderr]    --> packages/web/src/domain/auth.rs:149:12
[INFO] [stderr]     |
[INFO] [stderr] 129 | impl AccessControl {
[INFO] [stderr]     | ------------------ associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 149 |     pub fn get_accessible_routes(user: &User) -> Vec<&'static str> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_grade` is never used
[INFO] [stderr]    --> packages/web/src/i18n/grading.rs:176:8
[INFO] [stderr]     |
[INFO] [stderr] 176 | pub fn validate_grade(value: f64, locale: Locale) -> Result<(), String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LOCALE_STORAGE_KEY` is never used
[INFO] [stderr]   --> packages/web/src/i18n/provider.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const LOCALE_STORAGE_KEY: &str = "edutalent_locale";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `try_use_locale` is never used
[INFO] [stderr]   --> packages/web/src/i18n/provider.rs:67:8
[INFO] [stderr]    |
[INFO] [stderr] 67 | pub fn try_use_locale() -> Option<LocaleContext> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `assignment_status_label` is never used
[INFO] [stderr]    --> packages/web/src/i18n/ui_translations.rs:293:8
[INFO] [stderr]     |
[INFO] [stderr] 293 | pub fn assignment_status_label(value: &str, locale: Locale) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `is_authenticated` and `refresh_session` are never used
[INFO] [stderr]    --> packages/web/src/infrastructure/auth_provider.rs:141:18
[INFO] [stderr]     |
[INFO] [stderr]  33 | impl AuthProvider {
[INFO] [stderr]     | ----------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 141 |     pub async fn is_authenticated() -> bool {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 145 |     pub async fn refresh_session() -> Result<UserSession, AuthError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `is_authenticated` is never used
[INFO] [stderr]    --> packages/web/src/infrastructure/auth_provider.rs:181:12
[INFO] [stderr]     |
[INFO] [stderr] 162 | impl AuthState {
[INFO] [stderr]     | -------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 181 |     pub fn is_authenticated() -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `disabled` are never used
[INFO] [stderr]   --> packages/web/src/ui/forms.rs:41:12
[INFO] [stderr]    |
[INFO] [stderr] 40 | impl SelectOption {
[INFO] [stderr]    | ----------------- associated items in this implementation
[INFO] [stderr] 41 |     pub fn new(value: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn disabled(mut self, disabled: bool) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `add_error`, `clear_field_error`, `clear_all_errors`, `has_field_error`, and `get_field_error` are never used
[INFO] [stderr]   --> packages/web/src/utils/validation.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl FormValidationState {
[INFO] [stderr]    | ------------------------ associated items in this implementation
[INFO] [stderr] 20 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn add_error(&mut self, field: String, message: String) {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn clear_field_error(&mut self, field: &str) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn clear_all_errors(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn has_field_error(&self, field: &str) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub fn get_field_error(&self, field: &str) -> Option<String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ValidationRule` is never constructed
[INFO] [stderr]   --> packages/web/src/utils/validation.rs:63:12
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub struct ValidationRule {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `validate` is never used
[INFO] [stderr]   --> packages/web/src/utils/validation.rs:88:12
[INFO] [stderr]    |
[INFO] [stderr] 87 | impl ValidationRule {
[INFO] [stderr]    | ------------------- method in this implementation
[INFO] [stderr] 88 |     pub fn validate(&self, value: &str) -> Result<(), String> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FormValidator` is never constructed
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:141:12
[INFO] [stderr]     |
[INFO] [stderr] 141 | pub struct FormValidator {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `add_rule`, and `validate_form` are never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:146:12
[INFO] [stderr]     |
[INFO] [stderr] 145 | impl FormValidator {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr] 146 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub fn add_rule(mut self, rule: ValidationRule) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 155 |     pub fn validate_form(&self, data: &std::collections::HashMap<String, String>) -> FormValidationState {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `use_form_validation` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:289:8
[INFO] [stderr]     |
[INFO] [stderr] 289 | pub fn use_form_validation() -> Signal<FormValidationState> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `required_field` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:179:12
[INFO] [stderr]     |
[INFO] [stderr] 179 |     pub fn required_field(field: &str) -> ValidationRule {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `required_name` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:191:12
[INFO] [stderr]     |
[INFO] [stderr] 191 |     pub fn required_name(field: &str) -> ValidationRule {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `required_email` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:203:12
[INFO] [stderr]     |
[INFO] [stderr] 203 |     pub fn required_email(field: &str) -> ValidationRule {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `optional_phone` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:215:12
[INFO] [stderr]     |
[INFO] [stderr] 215 |     pub fn optional_phone(field: &str) -> ValidationRule {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `grade_level` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:227:12
[INFO] [stderr]     |
[INFO] [stderr] 227 |     pub fn grade_level(field: &str) -> ValidationRule {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `required_text` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:239:12
[INFO] [stderr]     |
[INFO] [stderr] 239 |     pub fn required_text(field: &str, min: usize, max: usize) -> ValidationRule {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `optional_text` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:251:12
[INFO] [stderr]     |
[INFO] [stderr] 251 |     pub fn optional_text(field: &str, min: usize, max: usize) -> ValidationRule {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `required_uuid` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:263:12
[INFO] [stderr]     |
[INFO] [stderr] 263 |     pub fn required_uuid(field: &str) -> ValidationRule {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `optional_uuid` is never used
[INFO] [stderr]    --> packages/web/src/utils/validation.rs:275:12
[INFO] [stderr]     |
[INFO] [stderr] 275 |     pub fn optional_uuid(field: &str) -> ValidationRule {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AuthState` is never constructed
[INFO] [stderr]  --> packages/web/src/utils/auth.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct AuthState {
[INFO] [stderr]   |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `use_auth` is never used
[INFO] [stderr]   --> packages/web/src/utils/auth.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn use_auth() -> Resource<Option<api::domain::UserInfo>> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `trigger_logout` is never used
[INFO] [stderr]   --> packages/web/src/utils/auth.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn trigger_logout() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `invalidate_subjects` is never used
[INFO] [stderr]   --> packages/web/src/utils/cache.rs:40:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl AppCache {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub fn invalidate_subjects(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ErrorBoundaryHooks` is never constructed
[INFO] [stderr]    --> packages/web/src/views/role_based/components/error_boundary.rs:114:12
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub struct ErrorBoundaryHooks;
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `use_async_error_handler`, `use_clear_error`, and `use_has_error` are never used
[INFO] [stderr]    --> packages/web/src/views/role_based/components/error_boundary.rs:117:12
[INFO] [stderr]     |
[INFO] [stderr] 116 | impl ErrorBoundaryHooks {
[INFO] [stderr]     | ----------------------- associated functions in this implementation
[INFO] [stderr] 117 |     pub fn use_async_error_handler() -> EventHandler<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn use_clear_error() -> impl FnMut() {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 132 |     pub fn use_has_error() -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AppError` is never used
[INFO] [stderr]    --> packages/web/src/views/role_based/components/error_boundary.rs:140:10
[INFO] [stderr]     |
[INFO] [stderr] 140 | pub enum AppError {
[INFO] [stderr]     |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `user_message` and `error_type` are never used
[INFO] [stderr]    --> packages/web/src/views/role_based/components/error_boundary.rs:153:12
[INFO] [stderr]     |
[INFO] [stderr] 150 | impl AppError {
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn user_message(&self) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 165 |     pub fn error_type(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `current`, and `with_click` are never used
[INFO] [stderr]    --> packages/web/src/views/role_based/components/navigation.rs:127:12
[INFO] [stderr]     |
[INFO] [stderr] 126 | impl BreadcrumbItem {
[INFO] [stderr]     | ------------------- associated items in this implementation
[INFO] [stderr] 127 |     pub fn new(label: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 135 |     pub fn current(mut self) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 140 |     pub fn with_click(mut self, on_click: EventHandler<()>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `with_icon`, and `with_badge` are never used
[INFO] [stderr]    --> packages/web/src/views/role_based/components/navigation.rs:216:12
[INFO] [stderr]     |
[INFO] [stderr] 215 | impl TabItem {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr] 216 |     pub fn new(id: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 225 |     pub fn with_icon(mut self, icon: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 230 |     pub fn with_badge(mut self, badge: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `with_description`, `with_icon`, and `with_click` are never used
[INFO] [stderr]    --> packages/web/src/views/role_based/components/navigation.rs:304:12
[INFO] [stderr]     |
[INFO] [stderr] 303 | impl QuickAction {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] 304 |     pub fn new(id: impl Into<String>, title: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 314 |     pub fn with_description(mut self, description: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 319 |     pub fn with_icon(mut self, icon: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 324 |     pub fn with_click(mut self, on_click: EventHandler<()>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NavigationUtils` is never constructed
[INFO] [stderr]    --> packages/web/src/views/role_based/components/navigation.rs:407:12
[INFO] [stderr]     |
[INFO] [stderr] 407 | pub struct NavigationUtils;
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `breadcrumbs_from_route` and `format_route_part` are never used
[INFO] [stderr]    --> packages/web/src/views/role_based/components/navigation.rs:411:12
[INFO] [stderr]     |
[INFO] [stderr] 409 | impl NavigationUtils {
[INFO] [stderr]     | -------------------- associated functions in this implementation
[INFO] [stderr] 410 |     /// Generate breadcrumb items from a route path
[INFO] [stderr] 411 |     pub fn breadcrumbs_from_route(route: &str) -> Vec<BreadcrumbItem> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 430 |     fn format_route_part(part: &str) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `optional_text` is never used
[INFO] [stderr]    --> packages/web/src/views/role_based/knowledge.rs:510:4
[INFO] [stderr]     |
[INFO] [stderr] 510 | fn optional_text(value: String) -> Option<String> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `metadata_line` is never used
[INFO] [stderr]    --> packages/web/src/views/role_based/knowledge.rs:515:4
[INFO] [stderr]     |
[INFO] [stderr] 515 | fn metadata_line(subject: &Option<String>, grade: &Option<String>, language: &str) -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `replacement_error_message` is never used
[INFO] [stderr]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:491:4
[INFO] [stderr]     |
[INFO] [stderr] 491 | fn replacement_error_message(status: u16, fa: bool) -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `source_form_error` is never used
[INFO] [stderr]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:567:4
[INFO] [stderr]     |
[INFO] [stderr] 567 | fn source_form_error(f: bool) -> &'static str {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `replacement_success` is never used
[INFO] [stderr]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:574:4
[INFO] [stderr]     |
[INFO] [stderr] 574 | fn replacement_success(f: bool) -> &'static str {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `storage_error` is never used
[INFO] [stderr]    --> packages/web/src/views/role_based/school_manager/knowledge_asset_management_v2.rs:581:4
[INFO] [stderr]     |
[INFO] [stderr] 581 | fn storage_error(f: bool) -> &'static str {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> packages/web/src/views/role_based/shared/charts.rs:154:12
[INFO] [stderr]     |
[INFO] [stderr] 153 | impl ChartItem {
[INFO] [stderr]     | -------------- associated function in this implementation
[INFO] [stderr] 154 |     pub fn new(label: impl Into<String>, value: f32, color: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Warning` and `Gray` are never constructed
[INFO] [stderr]    --> packages/web/src/views/role_based/shared/common.rs:126:5
[INFO] [stderr]     |
[INFO] [stderr] 124 | pub enum BadgeVariant {
[INFO] [stderr]     |          ------------ variants in this enum
[INFO] [stderr] 125 |     Success,
[INFO] [stderr] 126 |     Warning,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 129 |     Gray,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `BadgeVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Success`, `Warning`, and `Danger` are never constructed
[INFO] [stderr]    --> packages/web/src/views/role_based/shared/common.rs:200:5
[INFO] [stderr]     |
[INFO] [stderr] 197 | pub enum ButtonVariant {
[INFO] [stderr]     |          ------------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 200 |     Success,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 201 |     Warning,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 202 |     Danger,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ButtonVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Large` is never constructed
[INFO] [stderr]    --> packages/web/src/views/role_based/shared/common.rs:210:5
[INFO] [stderr]     |
[INFO] [stderr] 207 | pub enum ButtonSize {
[INFO] [stderr]     |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 210 |     Large,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ButtonSize` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> packages/web/src/views/role_based/shared/forms.rs:72:12
[INFO] [stderr]    |
[INFO] [stderr] 71 | impl SelectOption {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] 72 |     pub fn new(value: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> packages/web/src/views/role_based/shared/tables.rs:40:12
[INFO] [stderr]    |
[INFO] [stderr] 39 | impl TableColumn {
[INFO] [stderr]    | ---------------- associated function in this implementation
[INFO] [stderr] 40 |     pub fn new(key: impl Into<String>, label: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `with_cell` and `get_cell_value` are never used
[INFO] [stderr]   --> packages/web/src/views/role_based/shared/tables.rs:60:12
[INFO] [stderr]    |
[INFO] [stderr] 53 | impl TableRow {
[INFO] [stderr]    | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 60 |     pub fn with_cell(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub fn get_cell_value(&self, key: &str) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `with_change`, and `with_icon` are never used
[INFO] [stderr]    --> packages/web/src/views/role_based/shared/tables.rs:105:12
[INFO] [stderr]     |
[INFO] [stderr] 104 | impl StatItem {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] 105 |     pub fn new(
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 119 |     pub fn with_change(mut self, change: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub fn with_icon(mut self, icon: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `className` should have a snake case name
[INFO] [stderr]    --> packages/web/src/views/role_based/shared/common.rs:140:5
[INFO] [stderr]     |
[INFO] [stderr] 140 |     className: Option<String>,
[INFO] [stderr]     |     ^^^^^^^^^ help: convert the identifier to snake case: `class_name`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `className` should have a snake case name
[INFO] [stderr]    --> packages/web/src/views/role_based/shared/common.rs:140:5
[INFO] [stderr]     |
[INFO] [stderr] 140 |     className: Option<String>,
[INFO] [stderr]     |     ^^^^^^^^^ help: convert the identifier to snake case: `class_name`
[INFO] [stderr] 
[INFO] [stderr] warning: method `className` should have a snake case name
[INFO] [stderr]    --> packages/web/src/views/role_based/shared/common.rs:140:5
[INFO] [stderr]     |
[INFO] [stderr] 140 |     className: Option<String>,
[INFO] [stderr]     |     ^^^^^^^^^ help: convert the identifier to snake case: `class_name`
[INFO] [stderr] 
[INFO] [stderr] warning: `web` (bin "web" test) generated 144 warnings (run `cargo fix --bin "web" -p web --tests` to apply 66 suggestions)
[INFO] [stderr] warning: unused dependency `validator`
[INFO] [stderr]   --> packages/api/Cargo.toml:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | validator = { workspace = true }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `validator`
[INFO] [stderr] warning: `api` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `api`
[INFO] [stderr]  --> packages/ui/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | api = { workspace = true }
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `api`
[INFO] [stderr] warning: `ui` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `parsidate`
[INFO] [stderr]   --> packages/web/Cargo.toml:38:1
[INFO] [stderr]    |
[INFO] [stderr] 38 | parsidate = "1.7"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `parsidate`
[INFO] [stderr] warning: unused dependency `ui`
[INFO] [stderr]  --> packages/web/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | ui = { workspace = true }
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `ui`
[INFO] [stderr] warning: `web` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized] target(s) in 51.87s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/api/76959c5628bda9e9/out/api-76959c5628bda9e9)
[INFO] [stdout] 
[INFO] [stdout] running 37 tests
[INFO] [stdout] test product_capabilities::tests::release_metadata_matches_the_compiled_production_capabilities ... ok
[INFO] [stdout] test server_function_inventory_tests::direct_browser_routes_are_manifested_and_policy_runs_after_session_resolution ... ok
[INFO] [stdout] test product_capabilities::tests::incomplete_product_domains_fail_closed_in_the_production_release ... ok
[INFO] [stdout] test server_function_inventory_tests::endpoint_manifest_metadata_is_complete_and_exceptions_expire ... ok
[INFO] [stdout] test server_function_inventory_tests::fake_submission_success_and_provider_body_logging_cannot_return ... ok
[INFO] [stdout] test server_function_inventory_tests::disabled_placeholder_modules_cannot_return_fake_success ... ok
[INFO] [stdout] test server_function_inventory_tests::method_macros_are_inventoried_alongside_legacy_server_macros ... ok
[INFO] [stdout] test server_functions::admin_knowledge_review_functions::tests::review_metadata_requires_a_sha256_digest ... ok
[INFO] [stdout] test server_functions::admin_knowledge_review_functions::tests::admin_review_read_model_carries_school_display_identity ... ok
[INFO] [stdout] test server_functions::dashboard_functions::student_assignment_presentation_tests::persisted_submission_facts_map_to_one_student_presentation_state ... ok
[INFO] [stdout] test server_functions::admin_knowledge_ocr_functions::tests::source_revision_request_requires_explicit_identity_fields ... ok
[INFO] [stdout] test server_functions::dashboard_functions::student_assignment_presentation_tests::overdue_state_has_an_explicit_late_submission_action ... ok
[INFO] [stdout] test server_functions::admin_knowledge_review_functions::tests::private_bucket_name_is_fixed ... ok
[INFO] [stdout] test server_function_inventory_tests::session_identity_cannot_be_supplied_by_browser_arguments ... ok
[INFO] [stdout] test server_function_inventory_tests::active_browser_endpoints_do_not_accept_identity_tokens_as_arguments ... ok
[INFO] [stdout] test server_functions::dashboard_functions::teacher_assignment_presentation_tests::published_progress_is_derived_after_lifecycle ... ok
[INFO] [stdout] test server_functions::grade_presentation::tests::legacy_null_scale_policy_is_the_hundred_point_fallback_at_query_boundary ... ok
[INFO] [stdout] test server_functions::grade_presentation::tests::invalid_scale_or_grade_is_rejected ... ok
[INFO] [stdout] test server_functions::grade_presentation::tests::preserves_other_declared_scales ... ok
[INFO] [stdout] test server_functions::knowledge_functions::tests::rejects_unknown_or_unkeyed_contexts ... ok
[INFO] [stdout] test server_functions::dashboard_functions::teacher_assignment_presentation_tests::drafts_never_receive_a_published_progress_phase ... ok
[INFO] [stdout] test server_functions::knowledge_readiness::tests::readiness_states_do_not_expose_provider_details ... ok
[INFO] [stdout] test server_functions::notification_functions::tests::notification_page_bounds_are_enforced ... ok
[INFO] [stdout] test server_functions::assignment_functions::tests::production_assignment_module_uses_only_authorized_repository ... ok
[INFO] [stdout] test server_functions::parent_scoped_functions::tests::parent_assignment_query_returns_neutral_dates_and_student_canonical_states ... ok
[INFO] [stdout] test server_functions::parent_scoped_functions::tests::parent_grade_query_preserves_declared_scale_and_uses_shared_formatter ... ok
[INFO] [stdout] test server_functions::assignment_workflow::tests::publish_contract_uses_typed_expected_precondition_outcome ... ok
[INFO] [stdout] test server_functions::user_management::tests::school_manager_provisioning_role_allowlist_is_explicit ... ok
[INFO] [stdout] test server_functions::assignment_workflow::tests::assignment_form_is_teacher_scoped ... ok
[INFO] [stdout] test server_functions::user_preferences_functions::tests::only_actual_ui_languages_are_accepted ... ok
[INFO] [stdout] test server_functions::knowledge_functions::tests::accepts_supported_context_scopes ... ok
[INFO] [stdout] test server_functions::grade_presentation::tests::preserves_twenty_point_scale_when_deriving_letter_grade ... ok
[INFO] [stdout] test server_functions::profile_change_requests::tests::profile_diff_rejects_privileged_object_properties ... ok
[INFO] [stdout] test server_functions::parent_scoped_functions::tests::parent_children_are_keyed_by_parent_user_id ... ok
[INFO] [stdout] test server_functions::user_provisioning::tests::provisioning_role_allowlist_excludes_privileged_roles ... ok
[INFO] [stdout] test server_functions::user_preferences_functions::tests::unsupported_delivery_channels_fail_closed ... ok
[INFO] [stdout] test server_function_inventory_tests::every_production_server_endpoint_matches_the_authorization_manifest ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/assignment_dashboard_route_contract.rs (/opt/rustwide/target/debug/build/api/b27a22b657f10a71/out/assignment_dashboard_route_contract-b27a22b657f10a71)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test live_assignment_dashboard_routes_are_actor_scoped ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/ui/520d6f1b67b56095/out/ui-520d6f1b67b56095)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/web/c021ebdb84449eef/out/web-c021ebdb84449eef)
[INFO] [stdout] 
[INFO] [stdout] running 103 tests
[INFO] [stdout] test application::routing_service::tests::canonical_section_paths_are_history_safe_deep_links ... ok
[INFO] [stdout] test application::routing_service::tests::every_role_redirects_to_the_canonical_dashboard ... ok
[INFO] [stdout] test domain::user::tests::test_user_creation ... ok
[INFO] [stdout] test domain::user::tests::test_user_display_name ... ok
[INFO] [stdout] test domain::user::tests::test_user_initials ... ok
[INFO] [stdout] test application::routing_service::tests::direct_dashboard_route_authorization_uses_section_matrix ... ok
[INFO] [stdout] test domain::roles::tests::test_role_parsing ... ok
[INFO] [stdout] test domain::auth::tests::validates_credentials ... ok
[INFO] [stdout] test domain::auth::tests::role_specific_dashboards_are_isolated ... ok
[INFO] [stdout] test domain::roles::tests::platform_admin_and_school_manager_are_separate ... ok
[INFO] [stdout] test i18n::date_presentation::tests::rfc3339_dashboard_date_is_ready_for_structured_api_migration ... ok
[INFO] [stdout] test i18n::date_presentation::tests::legacy_dashboard_date_is_localized_at_the_ui_boundary ... ok
[INFO] [stdout] test i18n::date_presentation::tests::english_date_uses_readable_month_name ... ok
[INFO] [stdout] test i18n::grading::tests::test_format_display ... ok
[INFO] [stdout] test i18n::date_presentation::tests::persian_date_has_no_english_month_or_ascii_digits ... ok
[INFO] [stdout] test i18n::grading::tests::test_letter_grades ... ok
[INFO] [stdout] test i18n::locale::tests::test_from_code ... ok
[INFO] [stdout] test i18n::assignment_status::tests::every_canonical_assignment_state_is_localized_in_both_languages ... ok
[INFO] [stdout] test i18n::assignment_status::tests::legacy_assignment_status_translation_keys_have_bilingual_parity ... ok
[INFO] [stdout] test i18n::date_presentation::tests::legacy_submission_datetime_is_localized_without_protocol_chrome ... ok
[INFO] [stdout] test application::routing_service::tests::dashboard_section_matrix_rejects_role_mismatches ... ok
[INFO] [stdout] test i18n::platform_admin_translations::tests::language_codes_are_localized_without_mutating_unknown_source_data ... ok
[INFO] [stdout] test i18n::parent_translations::tests::parent_class_count_has_meaningful_localized_context ... ok
[INFO] [stdout] test i18n::platform_admin_translations::tests::asset_revision_events_are_distinct_and_localized ... ok
[INFO] [stdout] test i18n::locale::tests::test_grade_scales ... ok
[INFO] [stdout] test i18n::locale::tests::test_locale_codes ... ok
[INFO] [stdout] test i18n::assignment_status::tests::status_normalization_accepts_protocol_and_display_spellings ... ok
[INFO] [stdout] test i18n::assignment_status::tests::unknown_status_is_preserved_as_data_instead_of_inventing_a_label ... ok
[INFO] [stdout] test i18n::student_translations::tests::canonical_student_copy_has_english_and_farsi_parity ... ok
[INFO] [stdout] test i18n::provider::tests::test_locale_context_creation ... ok
[INFO] [stdout] test i18n::teacher_assignments_translations::tests::canonical_assignment_workflow_has_english_and_farsi_parity ... ok
[INFO] [stdout] test i18n::grading::tests::test_parse_grade ... ok
[INFO] [stdout] test i18n::platform_admin_translations::tests::lifecycle_statuses_and_audit_codes_never_render_raw_primary_codes ... ok
[INFO] [stdout] test i18n::platform_admin_translations::tests::platform_admin_core_keys_have_en_fa_parity ... ok
[INFO] [stdout] test i18n::grading::tests::test_persian_numerals ... ok
[INFO] [stdout] test i18n::teacher_assignments_translations::tests::no_student_publish_guidance_remains_actionable_in_both_locales ... ok
[INFO] [stdout] test i18n::locale::tests::test_default_locale_is_farsi ... ok
[INFO] [stdout] test i18n::ui_translations::tests::teacher_submission_copy_is_localized_in_english ... ok
[INFO] [stdout] test i18n::ui_translations::tests::persian_grading_copy_uses_the_twenty_point_scale ... ok
[INFO] [stdout] test i18n::ui_translations::tests::pr2_shared_copy_is_localized_in_both_languages ... ok
[INFO] [stdout] test i18n::ui_translations::tests::roles_are_presented_in_the_active_locale ... ok
[INFO] [stdout] test infrastructure::auth_provider::tests::maps_every_canonical_role_and_rejects_unknown_roles ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::canonical_role_dashboards_are_not_shadowed_by_legacy_v2_modules ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::dashboard_shell_does_not_advertise_inert_global_search ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::dashboard_remake_stylesheet_is_loaded_after_base_styles ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::incomplete_domains_are_not_advertised_by_production_navigation ... ok
[INFO] [stdout] test i18n::teacher_classes_translations::tests::canonical_teacher_class_copy_has_english_and_farsi_parity ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::knowledge_upload_ui_preflights_storage_without_echoing_provider_error_bodies ... ok
[INFO] [stdout] test i18n::translations::tests::test_translation_lookup ... ok
[INFO] [stdout] test domain::auth::tests::access_control_preserves_existing_school_workflows ... ok
[INFO] [stdout] test i18n::translations::tests::test_fallback_to_english ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::direct_role_routes_resolve_to_canonical_dashboards_without_placeholders ... ok
[INFO] [stdout] test i18n::teacher_dashboard_translations::tests::overview_introduction_has_bilingual_parity_without_raw_key_fallback ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::general_settings_language_options_match_runtime_locales ... ok
[INFO] [stdout] test i18n::date_presentation::tests::rfc3339_submission_datetime_is_ready_for_structured_api_migration ... ok
[INFO] [stdout] test i18n::parent_translations::tests::parent_translation_keys_have_en_fa_parity ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::mobile_dashboard_navigation_does_not_drop_role_destinations ... ok
[INFO] [stdout] test i18n::teacher_classes_translations::tests::vectorization_duration_is_locale_presented_without_feature_copy ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::notification_settings_do_not_advertise_unavailable_delivery_channels ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::parent_ui_uses_parent_user_scoped_contract ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::password_ui_does_not_collect_unverified_current_password ... ok
[INFO] [stdout] test i18n::grading::tests::test_grade_conversion ... ok
[INFO] [stdout] test i18n::locale::tests::test_rtl_detection ... ok
[INFO] [stdout] test i18n::translations::tests::test_all_fa_keys_present ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::student_assignment_ui_never_invents_missing_points ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::teacher_publish_ui_uses_guided_domain_contract ... ok
[INFO] [stdout] test route_tests::legacy_role_aliases_remain_explicit_and_guardable ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::provisioning_ui_cannot_call_password_bearing_legacy_endpoint ... ok
[INFO] [stdout] test ui::forms::tests::shared_control_ids_are_stable_and_distinct_by_semantic_key ... ok
[INFO] [stdout] test views::role_based::components::role_guard::tests::permission_checking_uses_the_domain_user ... ok
[INFO] [stdout] test views::role_based::components::role_guard::tests::role_guard_role_comparison_is_explicit ... ok
[INFO] [stdout] test views::role_based::platform_admin::tests::file_size_labels_are_human_readable ... ok
[INFO] [stdout] test views::role_based::platform_admin::tests::loading_and_unchanged_ocr_are_not_unsaved_edits ... ok
[INFO] [stdout] test views::role_based::platform_admin::tests::platform_admin_production_uses_shared_localized_readable_primitives ... ok
[INFO] [stdout] test views::role_based::school_manager::knowledge_asset_management_v2::tests::vector_payload_metadata_is_retrieval_sensitive ... ok
[INFO] [stdout] test views::role_based::school_manager::knowledge_asset_management_v2::tests::description_only_is_not_retrieval_sensitive ... ok
[INFO] [stdout] test views::role_based::parent::children::tests::parent_children_use_shared_localized_status_date_and_grade_primitives ... ok
[INFO] [stdout] test views::role_based::parent::dashboard::tests::parent_overview_uses_product_localization_without_release_commentary ... ok
[INFO] [stdout] test views::role_based::platform_admin::tests::technical_references_are_secondary_and_short_in_primary_chrome ... ok
[INFO] [stdout] test views::role_based::school_manager::settings::general::tests::language_options_match_actual_locale_enum ... ok
[INFO] [stdout] test views::role_based::school_manager::knowledge_upload::tests::upload_errors_are_status_mapped_not_server_body_mirrors ... ok
[INFO] [stdout] test views::role_based::shared::common::grade_date_tests::formats_grade_dates_at_the_presentation_boundary ... ok
[INFO] [stdout] test views::role_based::school_manager::settings::security::tests::security_ui_requires_provider_backed_reauthentication ... ok
[INFO] [stdout] test views::role_based::shared::common::grade_date_tests::does_not_present_an_invalid_grade_timestamp ... ok
[INFO] [stdout] test views::role_based::school_manager::settings::notifications::tests::unsupported_delivery_preferences_are_not_exposed ... ok
[INFO] [stdout] test views::role_based::student::assignments::tests::graded_detail_uses_submission_feedback_instead_of_persistence_status ... ok
[INFO] [stdout] test views::role_based::student::assignments::tests::missing_points_are_not_invented_and_are_localized ... ok
[INFO] [stdout] test views::role_based::student::assignments::tests::assignment_filters_and_submission_editor_expose_accessibility_semantics ... ok
[INFO] [stdout] test views::role_based::school_manager::user_creation::tests::creation_hub_contains_no_fake_live_metrics ... ok
[INFO] [stdout] test views::role_based::student::assignments::tests::filters_use_the_canonical_presentation_state ... ok
[INFO] [stdout] test views::role_based::student::assignments::tests::overdue_work_uses_localized_late_submission_action ... ok
[INFO] [stdout] test views::role_based::student::classes::tests::class_assignment_and_material_dates_are_localized_at_the_web_boundary ... ok
[INFO] [stdout] test views::role_based::student::dashboard::tests::upcoming_queue_excludes_submitted_and_graded_work ... ok
[INFO] [stdout] test views::role_based::student::classes::tests::student_class_dialogs_do_not_render_backend_error_bodies ... ok
[INFO] [stdout] test views::role_based::teacher::classes::tests::teacher_class_modals_do_not_render_backend_error_bodies ... ok
[INFO] [stdout] test views::role_based::student::dashboard::tests::overview_localizes_status_and_legacy_date_at_the_presentation_boundary ... ok
[INFO] [stdout] test views::role_based::student::grades::tests::student_grade_errors_are_bounded_and_translation_driven ... ok
[INFO] [stdout] test views::role_based::teacher::assignments::tests::assignment_cards_do_not_invent_points ... ok
[INFO] [stdout] test views::role_based::teacher::assignments::tests::assignment_filters_respect_lifecycle_before_progress ... ok
[INFO] [stdout] test views::role_based::teacher::assignments::tests::publish_errors_are_classified_without_exposing_backend_bodies ... ok
[INFO] [stdout] test views::role_based::teacher::classes::tests::persian_vectorization_duration_uses_persian_digits_and_units ... ok
[INFO] [stdout] test views::role_based::teacher::submissions::attachment_preview_tests::persian_submission_preview_never_splits_utf8 ... ok
[INFO] [stdout] test product_truthfulness_tests::tests::production_web_source_contains_no_known_fictional_or_noop_product_content ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 103 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests api
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ui
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077", kill_on_drop: false }`
[INFO] [stdout] 3473c8159d3b3ba1a5a32abd196e20f55b453b6f1dcac7051f58196a16e11077
