[INFO] cloning repository https://github.com/MageGojo/drission-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MageGojo/drission-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMageGojo%2Fdrission-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMageGojo%2Fdrission-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f0f1d47fd9bbc0c281366a096db18230fe36791f [INFO] documenting MageGojo/drission-rs against 1.97.0-beta.6 for beta-rustdoc-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMageGojo%2Fdrission-rs" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-5-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/MageGojo/drission-rs [INFO] removed 0 missing examples [INFO] finished tweaking git repo https://github.com/MageGojo/drission-rs [INFO] tweaked toml for git repo https://github.com/MageGojo/drission-rs written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/MageGojo/drission-rs on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/MageGojo/drission-rs 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rmcp-macros v2.1.0 [INFO] [stderr] Downloaded lzma-rust2 v0.16.4 [INFO] [stderr] Downloaded string-interner v0.20.0 [INFO] [stderr] Downloaded scan_fmt v0.2.6 [INFO] [stderr] Downloaded nom-language v0.1.0 [INFO] [stderr] Downloaded dyn-hash v1.0.0 [INFO] [stderr] Downloaded rmcp v2.1.0 [INFO] [stderr] Downloaded tract-transformers v0.23.3 [INFO] [stderr] Downloaded tract-nnef v0.23.3 [INFO] [stderr] Downloaded anymap3 v1.1.0 [INFO] [stderr] Downloaded tract-onnx v0.23.3 [INFO] [stderr] Downloaded tract-data v0.23.3 [INFO] [stderr] Downloaded tract-extra v0.23.3 [INFO] [stderr] Downloaded tract-onnx-opl v0.23.3 [INFO] [stderr] Downloaded tract-pulse-opl v0.23.3 [INFO] [stderr] Downloaded cssparser-macros v0.7.0 [INFO] [stderr] Downloaded scraper v0.27.0 [INFO] [stderr] Downloaded tract-hir v0.23.3 [INFO] [stderr] Downloaded tract-pulse v0.23.3 [INFO] [stderr] Downloaded cssparser v0.37.0 [INFO] [stderr] Downloaded selectors v0.38.0 [INFO] [stderr] Downloaded relative-path v2.0.1 [INFO] [stderr] Downloaded minijinja v2.21.0 [INFO] [stderr] Downloaded tract-core v0.23.3 [INFO] [stderr] Downloaded rquickjs v0.11.0 [INFO] [stderr] Downloaded rquickjs-core v0.11.0 [INFO] [stderr] Downloaded tract-linalg v0.23.3 [INFO] [stderr] Downloaded rquickjs-sys v0.11.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2 [INFO] running `Command { std: "docker" "start" "0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2", 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" "0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2", 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" "0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Checking typenum v1.20.1 [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Compiling syn v2.0.118 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking socket2 v0.6.4 [INFO] [stderr] Checking mio v1.2.1 [INFO] [stderr] Checking phf_shared v0.13.1 [INFO] [stderr] Checking cmov v0.5.4 [INFO] [stderr] Compiling cc v1.2.64 [INFO] [stderr] Checking const-oid v0.10.2 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling string_cache_codegen v0.6.1 [INFO] [stderr] Compiling rustls v0.23.40 [INFO] [stderr] Checking precomputed-hash v0.1.1 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking dtoa v1.0.11 [INFO] [stderr] Checking tendril v0.5.0 [INFO] [stderr] Compiling nix v0.31.3 [INFO] [stderr] Compiling selectors v0.38.0 [INFO] [stderr] Checking dtoa-short v0.3.5 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Checking servo_arc v0.4.3 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking libbz2-rs-sys v0.2.5 [INFO] [stderr] Checking cpubits v0.1.1 [INFO] [stderr] Checking dirs-sys v0.5.0 [INFO] [stderr] Checking time v0.3.49 [INFO] [stderr] Checking zopfli v0.8.3 [INFO] [stderr] Checking getopts v0.2.24 [INFO] [stderr] Checking string_cache v0.9.0 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking serde_json v1.0.150 [INFO] [stderr] Checking constant_time_eq v0.4.2 [INFO] [stderr] Checking ctutils v0.4.2 [INFO] [stderr] Checking ego-tree v0.11.0 [INFO] [stderr] Checking ppmd-rust v1.4.0 [INFO] [stderr] Checking deflate64 v0.1.12 [INFO] [stderr] Checking dirs v6.0.0 [INFO] [stderr] Checking os_pipe v1.2.3 [INFO] [stderr] Compiling web_atoms v0.2.5 [INFO] [stderr] Checking rand v0.9.4 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Checking bzip2 v0.6.1 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling aws-lc-sys v0.41.0 [INFO] [stderr] Checking hybrid-array v0.4.12 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking crypto-common v0.2.2 [INFO] [stderr] Checking block-buffer v0.12.1 [INFO] [stderr] Checking inout v0.2.2 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking digest v0.11.3 [INFO] [stderr] Checking cipher v0.5.2 [INFO] [stderr] Checking sha2 v0.11.0 [INFO] [stderr] Checking hmac v0.13.0 [INFO] [stderr] Checking sha1 v0.11.0 [INFO] [stderr] Checking aes v0.9.1 [INFO] [stderr] Checking pbkdf2 v0.13.0 [INFO] [stderr] Checking lzma-rust2 v0.16.4 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling displaydoc v0.2.6 [INFO] [stderr] Compiling phf_macros v0.13.1 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling cssparser-macros v0.7.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Checking phf v0.13.1 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking zip v8.6.0 [INFO] [stderr] Checking tokio v1.52.3 [INFO] [stderr] Checking cssparser v0.37.0 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking markup5ever v0.39.0 [INFO] [stderr] Checking zerofrom v0.1.8 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stderr] Checking tungstenite v0.29.0 [INFO] [stderr] Checking yoke v0.8.3 [INFO] [stderr] Checking html5ever v0.39.0 [INFO] [stderr] Checking zerovec v0.11.6 [INFO] [stderr] Checking zerotrie v0.2.4 [INFO] [stderr] Checking scraper v0.27.0 [INFO] [stderr] Checking tinystr v0.8.3 [INFO] [stderr] Checking potential_utf v0.1.5 [INFO] [stderr] Checking icu_locale_core v2.2.0 [INFO] [stderr] Checking icu_collections v2.2.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking icu_provider v2.2.0 [INFO] [stderr] Checking icu_normalizer v2.2.0 [INFO] [stderr] Checking icu_properties v2.2.0 [INFO] [stderr] Checking idna_adapter v1.2.2 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking command-fds v0.3.3 [INFO] [stderr] Checking tokio-tungstenite v0.29.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking h2 v0.4.15 [INFO] [stderr] Checking tower-http v0.6.11 [INFO] [stderr] Compiling aws-lc-rs v1.17.0 [INFO] [stderr] Checking hyper v1.10.1 [INFO] [stderr] Checking rustls-webpki v0.103.13 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking rustls-platform-verifier v0.7.0 [INFO] [stderr] Checking hyper-rustls v0.27.9 [INFO] [stderr] Checking reqwest v0.13.4 [INFO] [stderr] Documenting drission v0.4.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unresolved link to `AxTree` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 把页面压成一棵 `role "name"` 的语义树 [`AxTree`]:用于**抗改版断言**(按角色+可见名定位)或 [INFO] [stdout] ^^^^^^^^ [INFO] [stdout] = note: no item named `AxTree` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `AxTree` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 两条获取路径(都产 [`AxTree`],接口一致): [INFO] [stdout] ^^^^^^^^ [INFO] [stdout] = note: no item named `AxTree` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `build_from_cdp` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **CDP 原生**(最准,仅 cdp):`Accessibility.getFullAXTree` 的**扁平**节点数组 → [`build_from_cdp`] [INFO] [stdout] ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `build_from_cdp` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `AX_SNAPSHOT_JS` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **DOM 派生**(跨后端):页面里跑 [`AX_SNAPSHOT_JS`] 按 ARIA 规则算近似语义树 → [`build_from_snapshot`]。 [INFO] [stdout] ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `AX_SNAPSHOT_JS` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `build_from_snapshot` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **DOM 派生**(跨后端):页面里跑 [`AX_SNAPSHOT_JS`] 按 ARIA 规则算近似语义树 → [`build_from_snapshot`]。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `build_from_snapshot` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `fetch` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **浏览器自动下载** [`fetch`]:找不到系统 Chrome 时,自动从 **Chrome for Testing** 下载并缓存 [INFO] [stdout] ^^^^^^^ [INFO] [stdout] = note: no item named `fetch` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `ChromiumElement` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **元素句柄** [`ChromiumElement`]:`ele`/`eles`/相对定位 + 读文本/属性 + **原生可信点击** [INFO] [stdout] ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `ChromiumElement` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `CdpListen` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **网络监听** [`CdpListen`]:原生 `Network` 域事件 + `Network.getResponseBody`; [INFO] [stdout] ^^^^^^^^^^^ [INFO] [stdout] = note: no item named `CdpListen` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `CdpIntercept` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **请求拦截** [`CdpIntercept`]:`Fetch` 域 `requestPaused` + `continue`/`fulfill`/`fail`。 [INFO] [stdout] ^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `CdpIntercept` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::browser::cloudflare` [INFO] [stdout] --> src/cdp/cloudflare.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | //! 逻辑与 [`crate::browser::cloudflare`](Camoufox 后端)保持一致。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `browser` in module `drission` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `ChromiumDebugger` links to private item `CdpCore` [INFO] [stdout] --> src/cdp/debugger.rs:40:36 [INFO] [stdout] | [INFO] [stdout] 40 | /// 调试器句柄(`tab.debugger()`)。轻量包裹 [`CdpCore`]。 [INFO] [stdout] | ^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link resolves only because you passed `--document-private-items`, but will break without [INFO] [stdout] = note: `#[warn(rustdoc::private_intra_doc_links)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::pool::FingerprintPool` [INFO] [stdout] --> src/cdp/fingerprint.rs:4:40 [INFO] [stdout] | [INFO] [stdout] 4 | //! 与 Camoufox 后端的 [`FingerprintPool`](crate::pool::FingerprintPool) 同源思路,但面向 **CDP(纯 Chrome)**: [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `FingerprintPool` in module `pool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `CdpListen` links to private item `CdpCore` [INFO] [stdout] --> src/cdp/listener.rs:51:37 [INFO] [stdout] | [INFO] [stdout] 51 | /// 网络监听句柄(`tab.listen()` 返回;轻量包裹 [`CdpCore`])。 [INFO] [stdout] | ^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link resolves only because you passed `--document-private-items`, but will break without [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `CdpFingerprint` [INFO] [stdout] --> src/cdp/options.rs:51:49 [INFO] [stdout] | [INFO] [stdout] 51 | /// 在页面脚本运行前最早期执行、覆盖后续导航与子帧。用于**深指纹伪装**(由 [`CdpFingerprint`] [INFO] [stdout] | ^^^^^^^^^^^^^^ no item named `CdpFingerprint` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `spoof_container` links to private item `crate::cdp::container` [INFO] [stdout] --> src/cdp/options.rs:62:58 [INFO] [stdout] | [INFO] [stdout] 62 | /// 才开。仅 Linux 生效(改写的是 Linux GPU 串)。详见 [`container`](crate::cdp::container)。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link resolves only because you passed `--document-private-items`, but will break without [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::pool::BrowserPool` [INFO] [stdout] --> src/cdp/pool.rs:1:69 [INFO] [stdout] | [INFO] [stdout] 1 | //! CDP 后端的**高并发浏览器池** [`ChromiumPool`](对齐 camoufox [`BrowserPool`](crate::pool::BrowserPool))。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `BrowserPool` in module `pool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Target.createBrowserContext` [INFO] [stdout] --> src/cdp/pool.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | //! ([`Target.createBrowserContext`])拼成 [`ChromiumContextOverride`] —— 每任务一个独立上下文, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `Target.createBrowserContext` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Self::listen` [INFO] [stdout] --> src/cdp/tab.rs:4:46 [INFO] [stdout] | [INFO] [stdout] 4 | //! 原生可信低层鼠标 / 键盘 / 截图 / **网络监听**([`listen`](Self::listen))/ **请求拦截** [INFO] [stdout] | ^^^^^^^^^^^^ no item named `listen` in module `tab` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Self::intercept` [INFO] [stdout] --> src/cdp/tab.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | //! ([`intercept`](Self::intercept))。所有句柄共享同一 [`CdpCore`]。 [INFO] [stdout] | ^^^^^^^^^^^^^^^ no item named `intercept` in module `tab` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::session::SessionPage` [INFO] [stdout] --> src/cdp/tab.rs:747:35 [INFO] [stdout] | [INFO] [stdout] 747 | /// 用于把登录态交接给 [`SessionPage`](crate::session::SessionPage)(纯 HTTP 接力)或存盘复用。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `session` in module `drission` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `RecordedAction` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 把一次页面操作录制成一串 [`RecordedAction`](见 [`RecordedScript`]),再生成**可运行的 Rust 代码** [INFO] [stdout] ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `RecordedAction` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `RecordedScript` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 把一次页面操作录制成一串 [`RecordedAction`](见 [`RecordedScript`]),再生成**可运行的 Rust 代码** [INFO] [stdout] ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `RecordedScript` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `trait` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] [`EnvBackend`](trait)(导航前注入脚本 + 在页面求值),即可共用同一套探针 / `env.js` / 导出工程 / 验证。 [INFO] [stdout] ^^^^^ [INFO] [stdout] = note: no item named `trait` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvDumper` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDumper`]/[`EnvProbe`] 泛型于 [`EnvBackend`];`tab.dump_env()`(两后端)返回它。 [INFO] [stdout] ^^^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvDumper` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvProbe` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDumper`]/[`EnvProbe`] 泛型于 [`EnvBackend`];`tab.dump_env()`(两后端)返回它。 [INFO] [stdout] ^^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvProbe` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvBackend` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDumper`]/[`EnvProbe`] 泛型于 [`EnvBackend`];`tab.dump_env()`(两后端)返回它。 [INFO] [stdout] ^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvBackend` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvDump` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDump`] 是后端无关的结果(自包含 `Value`),其 [`verify`](EnvDump::verify) 泛型于后端。 [INFO] [stdout] ^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvDump` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvDump::verify` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDump`] 是后端无关的结果(自包含 `Value`),其 [`verify`](EnvDump::verify) 泛型于后端。 [INFO] [stdout] ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvDump` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::browser::Tab` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] Camoufox [`Tab`](crate::browser::Tab))共用同一段探针 JS,经各自的 `run_js` 求值。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `browser` in module `drission` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `改写放行请求时的可选覆盖字段` [INFO] [stdout] --> src/net.rs:9:25 [INFO] [stdout] | [INFO] [stdout] 9 | //! - [`ResumeOptions`](改写放行请求时的可选覆盖字段)。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `改写放行请求时的可选覆盖字段` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `BrowserPool` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] [`BrowserPool`] 管理一组浏览器进程(worker),提供: [INFO] [stdout] ^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `BrowserPool` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `ProxyPool` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **每任务轮换代理/指纹**:从 [`ProxyPool`] / [`FingerprintPool`] 取,拼成 per-context 覆盖。 [INFO] [stdout] ^^^^^^^^^^^ [INFO] [stdout] = note: no item named `ProxyPool` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `FingerprintPool` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **每任务轮换代理/指纹**:从 [`ProxyPool`] / [`FingerprintPool`] 取,拼成 per-context 覆盖。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `FingerprintPool` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `RetryPolicy` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **失败重试**:按 [`RetryPolicy`] 重试(可换 worker)。 [INFO] [stdout] ^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `RetryPolicy` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Checkpoint` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **断点续抓**:配合 [`Checkpoint`] 的 [`map_resumable`](BrowserPool::map_resumable)。 [INFO] [stdout] ^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `Checkpoint` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `BrowserPool::map_resumable` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **断点续抓**:配合 [`Checkpoint`] 的 [`map_resumable`](BrowserPool::map_resumable)。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `BrowserPool` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Browser` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 不破坏单浏览器 API:池是 [`Browser`]/[`Tab`] 之上的编排层。 [INFO] [stdout] ^^^^^^^^^ [INFO] [stdout] = note: no item named `Browser` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Tab` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 不破坏单浏览器 API:池是 [`Browser`]/[`Tab`] 之上的编排层。 [INFO] [stdout] ^^^^^ [INFO] [stdout] = note: no item named `Tab` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `super::BrowserPool::map_resumable` [INFO] [stdout] --> src/pool/checkpoint.rs:4:61 [INFO] [stdout] | [INFO] [stdout] 4 | //! 已落盘部分);加载时读回所有 key 建集合。与 [`BrowserPool::map_resumable`](super::BrowserPool::map_resumable) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `BrowserPool` in module `pool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `super::ProxyPool` [INFO] [stdout] --> src/pool/rotate.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | //! [`ProxyPool`](super::ProxyPool) / [`FingerprintPool`](super::FingerprintPool) 共用 [`Rotator`] [INFO] [stdout] | ^^^^^^^^^^^^^^^^ no item named `ProxyPool` in module `pool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `super::FingerprintPool` [INFO] [stdout] --> src/pool/rotate.rs:3:59 [INFO] [stdout] | [INFO] [stdout] 3 | //! [`ProxyPool`](super::ProxyPool) / [`FingerprintPool`](super::FingerprintPool) 共用 [`Rotator`] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ no item named `FingerprintPool` in module `pool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `rotate` links to private item `Rotator` [INFO] [stdout] --> src/pool/rotate.rs:3:88 [INFO] [stdout] | [INFO] [stdout] 3 | //! [`ProxyPool`](super::ProxyPool) / [`FingerprintPool`](super::FingerprintPool) 共用 [`Rotator`] [INFO] [stdout] | ^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link resolves only because you passed `--document-private-items`, but will break without [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `super::BrowserPool` [INFO] [stdout] --> src/pool/rotate.rs:4:36 [INFO] [stdout] | [INFO] [stdout] 4 | //! 在多任务并发下挑选下一个元素;[`BrowserPool`](super::BrowserPool) 也用 [`hash_key`] 做粘性定位。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ no item named `BrowserPool` in module `pool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `rotate` links to private item `hash_key` [INFO] [stdout] --> src/pool/rotate.rs:4:61 [INFO] [stdout] | [INFO] [stdout] 4 | //! 在多任务并发下挑选下一个元素;[`BrowserPool`](super::BrowserPool) 也用 [`hash_key`] 做粘性定位。 [INFO] [stdout] | ^^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link resolves only because you passed `--document-private-items`, but will break without [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `StaticElement` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 静态元素 [`StaticElement`]:对应 DrissionPage 的"静态元素"(`s_ele`/`s_eles`)。 [INFO] [stdout] ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `StaticElement` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::browser::Element` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 与实时 [`Element`](crate::browser::Element) 不同,静态元素是把某一时刻的 **HTML 快照** [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `browser` in module `drission` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::browser::xpath` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] [XPath 1.0 子集求值器](crate::browser::xpath)(覆盖 `//`/`/`、`*`、`[n]`/`[last()]`、 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `browser` in module `drission` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::browser::Tab::ele` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] [`Tab::ele`](crate::browser::Tab::ele)。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `browser` in module `drission` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::launcher::process` [INFO] [stdout] --> src/transport/mod.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | //! 子进程生命周期 + stderr 捕获(就绪检测与日志由 [`crate::launcher::process`] 使用)。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `launcher` in module `drission` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::browser::StaticElement` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 用于 [`StaticElement`](crate::browser::StaticElement) 的 `xpath:` 查询(实时 `tab.ele` 走浏览器 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `browser` in module `drission` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/cdp/browser.rs:44:23 [INFO] [stdout] | [INFO] [stdout] 44 | /// [`container`](crate::cdp::container))。在内置反检测脚本之后、用户 init_scripts 之前注入, [INFO] [stdout] | ----------- ^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] = note: `#[warn(rustdoc::redundant_explicit_links)]` on by default [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 44 - /// [`container`](crate::cdp::container))。在内置反检测脚本之后、用户 init_scripts 之前注入, [INFO] [stdout] 44 + /// [`container`])。在内置反检测脚本之后、用户 init_scripts 之前注入, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/cdp/dump_env.rs:2:59 [INFO] [stdout] | [INFO] [stdout] 2 | //! [`crate::envkit`]。这里把 `ChromiumTab` 接到 [`EnvBackend`](crate::envkit::EnvBackend):导航前注入用 [INFO] [stdout] | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 2 - //! [`crate::envkit`]。这里把 `ChromiumTab` 接到 [`EnvBackend`](crate::envkit::EnvBackend):导航前注入用 [INFO] [stdout] 2 + //! [`crate::envkit`]。这里把 `ChromiumTab` 接到 [`EnvBackend`]:导航前注入用 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/cdp/fingerprint.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | //! [`ChromiumOptions`](crate::cdp::ChromiumOptions)。 [INFO] [stdout] | ----------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 2 - //! [`ChromiumOptions`](crate::cdp::ChromiumOptions)。 [INFO] [stdout] 2 + //! [`ChromiumOptions`]。 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/cdp/pool.rs:8:32 [INFO] [stdout] | [INFO] [stdout] 8 | //! - **失败重试**([`RetryPolicy`](crate::pool::RetryPolicy),指数退避,可换 worker)。 [INFO] [stdout] | ------------- ^^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 8 - //! - **失败重试**([`RetryPolicy`](crate::pool::RetryPolicy),指数退避,可换 worker)。 [INFO] [stdout] 8 + //! - **失败重试**([`RetryPolicy`],指数退避,可换 worker)。 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/cdp/pool.rs:10:34 [INFO] [stdout] | [INFO] [stdout] 10 | //! - **断点续抓**:配合 [`Checkpoint`](crate::pool::Checkpoint) 的 [`map_resumable`](ChromiumPool::map_resumable)。 [INFO] [stdout] | ------------ ^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 10 - //! - **断点续抓**:配合 [`Checkpoint`](crate::pool::Checkpoint) 的 [`map_resumable`](ChromiumPool::map_resumable)。 [INFO] [stdout] 10 + //! - **断点续抓**:配合 [`Checkpoint`] 的 [`map_resumable`](ChromiumPool::map_resumable)。 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/cdp/pool.rs:245:29 [INFO] [stdout] | [INFO] [stdout] 245 | /// 失败按 [`RetryPolicy`](crate::pool::RetryPolicy) 重试。任务闭包须为 `Fn`(可能被重试多次)。 [INFO] [stdout] | ------------- ^^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 245 - /// 失败按 [`RetryPolicy`](crate::pool::RetryPolicy) 重试。任务闭包须为 `Fn`(可能被重试多次)。 [INFO] [stdout] 245 + /// 失败按 [`RetryPolicy`] 重试。任务闭包须为 `Fn`(可能被重试多次)。 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/cdp/recorder.rs:7:26 [INFO] [stdout] | [INFO] [stdout] 7 | //! [`RecordedScript`](crate::codegen::RecordedScript)。 [INFO] [stdout] | ---------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 7 - //! [`RecordedScript`](crate::codegen::RecordedScript)。 [INFO] [stdout] 7 + //! [`RecordedScript`]。 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 00s [INFO] [stderr] Generated /opt/rustwide/target/doc/drission/index.html [INFO] running `Command { std: "docker" "inspect" "0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2", 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" "-e" "RUSTC_BOOTSTRAP=1" "-e" "DOCS_RS=1" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "rustdoc" "--lib" "-Zrustdoc-map" "--all-features" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--document-private-items\"]" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling memo-map v0.3.3 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Checking nom v8.0.0 [INFO] [stderr] Checking scan_fmt v0.2.6 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Checking dyn-eq v0.1.3 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Checking dyn-hash v1.0.0 [INFO] [stderr] Checking strength_reduce v0.2.4 [INFO] [stderr] Checking maplit v1.0.2 [INFO] [stderr] Compiling erased-serde v0.4.10 [INFO] [stderr] Checking bit-vec v0.9.1 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Checking primal-check v0.3.4 [INFO] [stderr] Checking transpose v0.2.3 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Checking anymap3 v1.1.0 [INFO] [stderr] Checking rustfft v6.4.1 [INFO] [stderr] Checking inventory v0.3.24 [INFO] [stderr] Checking ndarray v0.17.2 [INFO] [stderr] Checking alloc-stdlib v0.2.4 [INFO] [stderr] Checking bit-set v0.10.0 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling minijinja v2.21.0 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Checking filetime v0.2.29 [INFO] [stderr] Checking brotli-decompressor v5.0.3 [INFO] [stderr] Compiling fslock v0.2.1 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Checking foreign-types-shared v0.3.1 [INFO] [stderr] Checking float-ord v0.3.2 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling rquickjs-sys v0.11.0 [INFO] [stderr] Compiling syn v2.0.118 [INFO] [stderr] Compiling string_cache_codegen v0.6.1 [INFO] [stderr] Checking compression-core v0.4.32 [INFO] [stderr] Checking webpki-root-certs v1.0.8 [INFO] [stderr] Checking rand v0.10.1 [INFO] [stderr] Checking brotli v8.0.4 [INFO] [stderr] Compiling web_atoms v0.2.5 [INFO] [stderr] Checking xattr v1.6.1 [INFO] [stderr] Checking linked_hash_set v0.1.6 [INFO] [stderr] Checking tar v0.4.46 [INFO] [stderr] Checking webpki-root-certs v0.26.11 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking antidote v1.0.0 [INFO] [stderr] Checking zune-core v0.5.1 [INFO] [stderr] Compiling regex v1.12.4 [INFO] [stderr] Checking lru v0.13.0 [INFO] [stderr] Checking rand_distr v0.6.0 [INFO] [stderr] Checking moxcms v0.8.1 [INFO] [stderr] Checking zune-jpeg v0.5.15 [INFO] [stderr] Checking zopfli v0.8.3 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Checking nix v0.31.3 [INFO] [stderr] Checking ttf-parser v0.21.1 [INFO] [stderr] Checking nom-language v0.1.0 [INFO] [stderr] Checking fontdue v0.9.3 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling bindgen v0.72.1 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking image v0.25.10 [INFO] [stderr] Compiling zerocopy-derive v0.8.52 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.6 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling derive-new v0.7.0 [INFO] [stderr] Compiling phf_macros v0.13.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling foreign-types-macros v0.2.3 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking foreign-types v0.5.0 [INFO] [stderr] Checking phf v0.13.1 [INFO] [stderr] Checking compression-codecs v0.4.38 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Compiling cssparser-macros v0.7.0 [INFO] [stderr] Compiling typed-builder-macro v0.21.2 [INFO] [stderr] Checking tokio v1.52.3 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking cssparser v0.37.0 [INFO] [stderr] Compiling prost-derive v0.14.4 [INFO] [stderr] Checking markup5ever v0.39.0 [INFO] [stderr] Checking html5ever v0.39.0 [INFO] [stderr] Checking zip v8.6.0 [INFO] [stderr] Checking zerofrom v0.1.8 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking zerocopy v0.8.52 [INFO] [stderr] Checking yoke v0.8.3 [INFO] [stderr] Checking zerovec v0.11.6 [INFO] [stderr] Checking zerotrie v0.2.4 [INFO] [stderr] Checking typed-builder v0.21.2 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking selectors v0.38.0 [INFO] [stderr] Checking tinystr v0.8.3 [INFO] [stderr] Checking potential_utf v0.1.5 [INFO] [stderr] Checking prost v0.14.4 [INFO] [stderr] Checking icu_collections v2.2.0 [INFO] [stderr] Checking icu_locale_core v2.2.0 [INFO] [stderr] Checking scraper v0.27.0 [INFO] [stderr] Checking string-interner v0.20.0 [INFO] [stderr] Checking safetensors v0.7.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking icu_provider v2.2.0 [INFO] [stderr] Compiling boring-sys2 v4.15.15 [INFO] [stderr] Checking icu_normalizer v2.2.0 [INFO] [stderr] Checking icu_properties v2.2.0 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking async-compression v0.4.42 [INFO] [stderr] Checking command-fds v0.3.3 [INFO] [stderr] Checking h2 v0.4.15 [INFO] [stderr] Checking http2 v0.4.21 [INFO] [stderr] Checking idna_adapter v1.2.2 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking tower-http v0.6.11 [INFO] [stderr] Checking hyper2 v1.5.5 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking tract-data v0.23.3 [INFO] [stderr] Checking rand v0.9.4 [INFO] [stderr] Compiling tract-linalg v0.23.3 [INFO] [stderr] Checking tungstenite v0.29.0 [INFO] [stderr] Checking hyper v1.10.1 [INFO] [stderr] Checking tokio-tungstenite v0.29.0 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking hyper-rustls v0.27.9 [INFO] [stderr] Checking tract-core v0.23.3 [INFO] [stderr] Checking reqwest v0.13.4 [INFO] [stderr] Checking rquickjs-core v0.11.0 [INFO] [stderr] Checking rquickjs v0.11.0 [INFO] [stderr] Checking tract-nnef v0.23.3 [INFO] [stderr] Checking tract-hir v0.23.3 [INFO] [stderr] Checking boring2 v4.15.15 [INFO] [stderr] Checking tract-transformers v0.23.3 [INFO] [stderr] Checking tract-pulse-opl v0.23.3 [INFO] [stderr] Checking tract-pulse v0.23.3 [INFO] [stderr] Checking tokio-boring2 v4.15.15 [INFO] [stderr] Checking wreq v5.3.0 [INFO] [stderr] Checking tract-extra v0.23.3 [INFO] [stderr] Checking tract-onnx-opl v0.23.3 [INFO] [stderr] Checking tract-onnx v0.23.3 [INFO] [stderr] Checking wreq-util v2.2.6 [INFO] [stderr] Documenting drission v0.4.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unresolved link to `AxTree` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 把页面压成一棵 `role "name"` 的语义树 [`AxTree`]:用于**抗改版断言**(按角色+可见名定位)或 [INFO] [stdout] ^^^^^^^^ [INFO] [stdout] = note: no item named `AxTree` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `AxTree` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 两条获取路径(都产 [`AxTree`],接口一致): [INFO] [stdout] ^^^^^^^^ [INFO] [stdout] = note: no item named `AxTree` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `build_from_cdp` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **CDP 原生**(最准,仅 cdp):`Accessibility.getFullAXTree` 的**扁平**节点数组 → [`build_from_cdp`] [INFO] [stdout] ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `build_from_cdp` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `AX_SNAPSHOT_JS` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **DOM 派生**(跨后端):页面里跑 [`AX_SNAPSHOT_JS`] 按 ARIA 规则算近似语义树 → [`build_from_snapshot`]。 [INFO] [stdout] ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `AX_SNAPSHOT_JS` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `build_from_snapshot` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **DOM 派生**(跨后端):页面里跑 [`AX_SNAPSHOT_JS`] 按 ARIA 规则算近似语义树 → [`build_from_snapshot`]。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `build_from_snapshot` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Browser` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`Browser`][]:启动 / 退出 / 标签管理。每个标签是一个独立 BrowserContext(cookie 隔离)。 [INFO] [stdout] ^^^^^^^^^ [INFO] [stdout] = note: no item named `Browser` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `tab::Tab` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`tab::Tab`][]:页面操作(get/run_js/ele/cookies/listen…)。 [INFO] [stdout] ^^^^^^^^^^ [INFO] [stdout] = note: no item named `tab` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `element::Element` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`element::Element`][]:元素操作(click/input/text/attr…)。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `element` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `listener::DataPacket` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`listener::DataPacket`][]:网络监听数据包。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `listener` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `screencast` links to private item `TabCore::capture` [INFO] [stdout] --> src/browser/screencast.rs:4:43 [INFO] [stdout] | [INFO] [stdout] 4 | //! 节流,复杂度更高),而是起一个**后台任务按帧间隔反复截视口**(复用 [`TabCore::capture`])。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] = note: `#[warn(rustdoc::private_intra_doc_links)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `slider` links to private item `choose_displacement` [INFO] [stdout] --> src/browser/slider.rs:13:42 [INFO] [stdout] | [INFO] [stdout] 13 | //! (`by_shape`);两法互校,近则取颜色法、分歧大取形状法([`choose_displacement`])。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `含建议文件名与最终落盘路径` [INFO] [stdout] --> src/browser/tab.rs:1567:47 [INFO] [stdout] | [INFO] [stdout] 1567 | /// 等待**本页触发的一次下载**完成,返回 [`DownloadInfo`](含建议文件名与最终落盘路径)。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `含建议文件名与最终落盘路径` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `DownloadMission::save_as` [INFO] [stdout] --> src/browser/tab.rs:1943:40 [INFO] [stdout] | [INFO] [stdout] 1943 | /// 后台收集本标签触发的多个下载,支持任务列表、自定义重命名([`DownloadMission::save_as`])、 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `DownloadMission` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `DownloadMission::downloaded_bytes` [INFO] [stdout] --> src/browser/tab.rs:1944:26 [INFO] [stdout] | [INFO] [stdout] 1944 | /// best-effort 进度([`DownloadMission::downloaded_bytes`])。需先用 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `DownloadMission` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `fetch` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **浏览器自动下载** [`fetch`]:找不到系统 Chrome 时,自动从 **Chrome for Testing** 下载并缓存 [INFO] [stdout] ^^^^^^^ [INFO] [stdout] = note: no item named `fetch` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `ChromiumElement` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **元素句柄** [`ChromiumElement`]:`ele`/`eles`/相对定位 + 读文本/属性 + **原生可信点击** [INFO] [stdout] ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `ChromiumElement` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `CdpListen` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **网络监听** [`CdpListen`]:原生 `Network` 域事件 + `Network.getResponseBody`; [INFO] [stdout] ^^^^^^^^^^^ [INFO] [stdout] = note: no item named `CdpListen` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `CdpIntercept` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **请求拦截** [`CdpIntercept`]:`Fetch` 域 `requestPaused` + `continue`/`fulfill`/`fail`。 [INFO] [stdout] ^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `CdpIntercept` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `ChromiumDebugger` links to private item `CdpCore` [INFO] [stdout] --> src/cdp/debugger.rs:40:36 [INFO] [stdout] | [INFO] [stdout] 40 | /// 调试器句柄(`tab.debugger()`)。轻量包裹 [`CdpCore`]。 [INFO] [stdout] | ^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `CdpListen` links to private item `CdpCore` [INFO] [stdout] --> src/cdp/listener.rs:51:37 [INFO] [stdout] | [INFO] [stdout] 51 | /// 网络监听句柄(`tab.listen()` 返回;轻量包裹 [`CdpCore`])。 [INFO] [stdout] | ^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `CdpFingerprint` [INFO] [stdout] --> src/cdp/options.rs:51:49 [INFO] [stdout] | [INFO] [stdout] 51 | /// 在页面脚本运行前最早期执行、覆盖后续导航与子帧。用于**深指纹伪装**(由 [`CdpFingerprint`] [INFO] [stdout] | ^^^^^^^^^^^^^^ no item named `CdpFingerprint` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `spoof_container` links to private item `crate::cdp::container` [INFO] [stdout] --> src/cdp/options.rs:62:58 [INFO] [stdout] | [INFO] [stdout] 62 | /// 才开。仅 Linux 生效(改写的是 Linux GPU 串)。详见 [`container`](crate::cdp::container)。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `RecordedAction` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 把一次页面操作录制成一串 [`RecordedAction`](见 [`RecordedScript`]),再生成**可运行的 Rust 代码** [INFO] [stdout] ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `RecordedAction` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `RecordedScript` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 把一次页面操作录制成一串 [`RecordedAction`](见 [`RecordedScript`]),再生成**可运行的 Rust 代码** [INFO] [stdout] ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `RecordedScript` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `trait` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] [`EnvBackend`](trait)(导航前注入脚本 + 在页面求值),即可共用同一套探针 / `env.js` / 导出工程 / 验证。 [INFO] [stdout] ^^^^^ [INFO] [stdout] = note: no item named `trait` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvDumper` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDumper`]/[`EnvProbe`] 泛型于 [`EnvBackend`];`tab.dump_env()`(两后端)返回它。 [INFO] [stdout] ^^^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvDumper` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvProbe` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDumper`]/[`EnvProbe`] 泛型于 [`EnvBackend`];`tab.dump_env()`(两后端)返回它。 [INFO] [stdout] ^^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvProbe` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvBackend` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDumper`]/[`EnvProbe`] 泛型于 [`EnvBackend`];`tab.dump_env()`(两后端)返回它。 [INFO] [stdout] ^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvBackend` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvDump` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDump`] 是后端无关的结果(自包含 `Value`),其 [`verify`](EnvDump::verify) 泛型于后端。 [INFO] [stdout] ^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvDump` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `EnvDump::verify` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - [`EnvDump`] 是后端无关的结果(自包含 `Value`),其 [`verify`](EnvDump::verify) 泛型于后端。 [INFO] [stdout] ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `EnvDump` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `改写放行请求时的可选覆盖字段` [INFO] [stdout] --> src/net.rs:9:25 [INFO] [stdout] | [INFO] [stdout] 9 | //! - [`ResumeOptions`](改写放行请求时的可选覆盖字段)。 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `改写放行请求时的可选覆盖字段` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `similarity` links to private item `crop_feat` [INFO] [stdout] --> src/ocr/glyph.rs:54:20 [INFO] [stdout] | [INFO] [stdout] 54 | /// 字框梯度特征(由 [`crop_feat`] 得)对目标字 `ch` 的最大模板相似度,夹到 `[0,1]`。 [INFO] [stdout] | ^^^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `similarity` links to private item `crop_feat` [INFO] [stdout] --> src/ocr/glyph.rs:277:20 [INFO] [stdout] | [INFO] [stdout] 277 | /// 某框梯度特征(由 [`crop_feat`])对字 `ch` 的最大相似度:对该字所有样本 × 几个旋转取最大,夹到 `[0,1]`。 [INFO] [stdout] | ^^^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `solve` links to private item `assign_optimal` [INFO] [stdout] --> src/ocr/mod.rs:642:22 [INFO] [stdout] | [INFO] [stdout] 642 | /// **全局最优指派**([`assign_optimal`]:每个目标分到**互不相同**的框、最大化总亲和度)→ 按目标顺序 [INFO] [stdout] | ^^^^^^^^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `points_for` [INFO] [stdout] --> src/ocr/mod.rs:771:48 [INFO] [stdout] | [INFO] [stdout] 771 | /// 文本法点击点(逐框全字符集 OCR → 文本相等/包含匹配)。鲁棒性弱于 [`points_for`],保留作回退/对照。 [INFO] [stdout] | ^^^^^^^^^^ no item named `points_for` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Page` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 一行起步的浏览器页面门面 [`Page`] —— 对标 DrissionPage 的 `ChromiumPage`,**大道至简**。 [INFO] [stdout] ^^^^^^ [INFO] [stdout] = note: no item named `Page` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Deref` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 持有浏览器与其活动标签,并通过 [`Deref`] 把**全部** `Tab` 方法直接挂到 `page` 上。 [INFO] [stdout] ^^^^^^^ [INFO] [stdout] = note: no item named `Deref` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Page::browser` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 想要更底层的多标签 / 接管 / 并发,仍可用 [`Page::browser`] 拿到 [`Browser`](crate::browser::Browser), [INFO] [stdout] ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `Page` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `BrowserPool` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] [`BrowserPool`] 管理一组浏览器进程(worker),提供: [INFO] [stdout] ^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `BrowserPool` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `ProxyPool` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **每任务轮换代理/指纹**:从 [`ProxyPool`] / [`FingerprintPool`] 取,拼成 per-context 覆盖。 [INFO] [stdout] ^^^^^^^^^^^ [INFO] [stdout] = note: no item named `ProxyPool` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `FingerprintPool` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **每任务轮换代理/指纹**:从 [`ProxyPool`] / [`FingerprintPool`] 取,拼成 per-context 覆盖。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `FingerprintPool` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `RetryPolicy` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **失败重试**:按 [`RetryPolicy`] 重试(可换 worker)。 [INFO] [stdout] ^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `RetryPolicy` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Checkpoint` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **断点续抓**:配合 [`Checkpoint`] 的 [`map_resumable`](BrowserPool::map_resumable)。 [INFO] [stdout] ^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `Checkpoint` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `BrowserPool::map_resumable` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] - **断点续抓**:配合 [`Checkpoint`] 的 [`map_resumable`](BrowserPool::map_resumable)。 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `BrowserPool` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Browser` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 不破坏单浏览器 API:池是 [`Browser`]/[`Tab`] 之上的编排层。 [INFO] [stdout] ^^^^^^^^^ [INFO] [stdout] = note: no item named `Browser` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `Tab` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 不破坏单浏览器 API:池是 [`Browser`]/[`Tab`] 之上的编排层。 [INFO] [stdout] ^^^^^ [INFO] [stdout] = note: no item named `Tab` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `rotate` links to private item `Rotator` [INFO] [stdout] --> src/pool/rotate.rs:3:88 [INFO] [stdout] | [INFO] [stdout] 3 | //! [`ProxyPool`](super::ProxyPool) / [`FingerprintPool`](super::FingerprintPool) 共用 [`Rotator`] [INFO] [stdout] | ^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: public documentation for `rotate` links to private item `hash_key` [INFO] [stdout] --> src/pool/rotate.rs:4:61 [INFO] [stdout] | [INFO] [stdout] 4 | //! 在多任务并发下挑选下一个元素;[`BrowserPool`](super::BrowserPool) 也用 [`hash_key`] 做粘性定位。 [INFO] [stdout] | ^^^^^^^^ this item is private [INFO] [stdout] | [INFO] [stdout] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `BrowserOptions` [INFO] [stdout] --> src/pool/fingerprint.rs:5:42 [INFO] [stdout] | [INFO] [stdout] 5 | //! 无法经此轮换——需要时给并发池里不同的浏览器 worker 配不同的 [`BrowserOptions`] 基线。 [INFO] [stdout] | ^^^^^^^^^^^^^^ no item named `BrowserOptions` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `BrowserOptions` [INFO] [stdout] --> src/pool/fingerprint.rs:113:30 [INFO] [stdout] | [INFO] [stdout] 113 | /// 需要时自建画像或用 worker 级 [`BrowserOptions`])。 [INFO] [stdout] | ^^^^^^^^^^^^^^ no item named `BrowserOptions` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `StaticElement` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 静态元素 [`StaticElement`]:对应 DrissionPage 的"静态元素"(`s_ele`/`s_eles`)。 [INFO] [stdout] ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `StaticElement` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `crate::browser::xpath` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] [XPath 1.0 子集求值器](crate::browser::xpath)(覆盖 `//`/`/`、`*`、`[n]`/`[last()]`、 [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `xpath` in module `browser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `WebPage` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 双模页面 [`WebPage`]:对标 DrissionPage 的 `WebPage` —— 在 **Driver(浏览器)** 与 [INFO] [stdout] ^^^^^^^^^ [INFO] [stdout] = note: no item named `WebPage` in scope [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `WebPage::change_mode` [INFO] [stdout] | [INFO] [stdout] = note: the link appears in this line: [INFO] [stdout] [INFO] [stdout] 渲染 / 交互 / 过盾时再 [`change_mode`](WebPage::change_mode) 切到 Driver;切换时自动同步 cookie, [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: no item named `WebPage` in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/browser/dump_env.rs:4:43 [INFO] [stdout] | [INFO] [stdout] 4 | //! 这里只把 Camoufox `Tab` 接到 [`EnvBackend`](crate::envkit::EnvBackend)(导航前 `add_init_script` + [INFO] [stdout] | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] = note: `#[warn(rustdoc::redundant_explicit_links)]` on by default [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 4 - //! 这里只把 Camoufox `Tab` 接到 [`EnvBackend`](crate::envkit::EnvBackend)(导航前 `add_init_script` + [INFO] [stdout] 4 + //! 这里只把 Camoufox `Tab` 接到 [`EnvBackend`](导航前 `add_init_script` + [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/browser/mod.rs:123:62 [INFO] [stdout] | [INFO] [stdout] 123 | /// 同 [`connect`](Self::connect),但可指定 [`BrowserOptions`](crate::launcher::BrowserOptions) [INFO] [stdout] | ---------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 123 - /// 同 [`connect`](Self::connect),但可指定 [`BrowserOptions`](crate::launcher::BrowserOptions) [INFO] [stdout] 123 + /// 同 [`connect`](Self::connect),但可指定 [`BrowserOptions`] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/page.rs:71:61 [INFO] [stdout] | [INFO] [stdout] 71 | /// 同 [`connect`](Self::connect),可指定 [`BrowserOptions`](crate::launcher::BrowserOptions)(会话级覆盖与反检测项)。 [INFO] [stdout] | ---------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 71 - /// 同 [`connect`](Self::connect),可指定 [`BrowserOptions`](crate::launcher::BrowserOptions)(会话级覆盖与反检测项)。 [INFO] [stdout] 71 + /// 同 [`connect`](Self::connect),可指定 [`BrowserOptions`](会话级覆盖与反检测项)。 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant explicit link target [INFO] [stdout] --> src/pool/health.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | //! [`ContextOverride`](crate::browser::ContextOverride)(时区 + 定位 + 语言),让每个标签的指纹与其代理 [INFO] [stdout] | ----------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ explicit target is redundant [INFO] [stdout] | | [INFO] [stdout] | because label contains path that resolves to same destination [INFO] [stdout] | [INFO] [stdout] = note: when a link's destination is not specified, [INFO] [stdout] the label is used to resolve intra-doc links [INFO] [stdout] help: remove explicit link target [INFO] [stdout] | [INFO] [stdout] 5 - //! [`ContextOverride`](crate::browser::ContextOverride)(时区 + 定位 + 语言),让每个标签的指纹与其代理 [INFO] [stdout] 5 + //! [`ContextOverride`](时区 + 定位 + 语言),让每个标签的指纹与其代理 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 07s [INFO] [stderr] Generated /opt/rustwide/target/doc/drission/index.html [INFO] running `Command { std: "docker" "inspect" "0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2", kill_on_drop: false }` [INFO] [stdout] 0ff030c25a4905860599ec3454f2137edd467f0828d1f98150e50bdeeafcf9a2