ferogram 0.3.3

Production-grade async Telegram MTProto client: updates, bots, flood-wait, dialogs, messages
Documentation
Build #3169983 2026-04-22 16:11:04

# rustc version rustc 1.97.0-nightly (9ec5d5f32 2026-04-21)

# docs.rs version docsrs 0.0.0 (15f7e1e9 2026-04-21 )

# build log [INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace-builder/builds/ferogram-0.3.3/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace-builder/builds/ferogram-0.3.3/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace-builder/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace-builder/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "6442450944" "--cpuset-cpus" "12-15" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "sleep" "infinity", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 6bc54f4b4446af8aefdaa694dd077df7f2424674b7bc2f2ad9e84f10142110be [INFO] running `Command { std: "docker" "start" "6bc54f4b4446af8aefdaa694dd077df7f2424674b7bc2f2ad9e84f10142110be", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "--user" "1001:1001" "6bc54f4b4446af8aefdaa694dd077df7f2424674b7bc2f2ad9e84f10142110be" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--features" "sqlite-session serde html html5ever parser codegen" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20260421-1.97.0-nightly-9ec5d5f32\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j4" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }` [INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op [INFO] [stderr] Documenting ferogram v0.3.3 (/opt/rustwide/workdir) [INFO] [stderr] warning: unresolved link to `keyboard::InlineKeyboardBuilder` [INFO] [stderr] --> src/lib.rs:114:30 [INFO] [stderr] | [INFO] [stderr] 114 | //! - Inline keyboards via [`keyboard::InlineKeyboardBuilder`] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `InlineKeyboardBuilder` in module `keyboard` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `LibSqlBackend` [INFO] [stderr] --> src/builder.rs:124:22 [INFO] [stderr] | [INFO] [stderr] 124 | /// Useful for [`LibSqlBackend`] (bundled SQLite, no system dep) or any [INFO] [stderr] | ^^^^^^^^^^^^^ no item named `LibSqlBackend` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `MtProxyConfig` [INFO] [stderr] --> src/builder.rs:170:21 [INFO] [stderr] | [INFO] [stderr] 170 | /// Build the [`MtProxyConfig`] with [`crate::parse_proxy_link`]. [INFO] [stderr] | ^^^^^^^^^^^^^ no item named `MtProxyConfig` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `ClientInner::worker_semaphore` [INFO] [stderr] --> src/media.rs:97:7 [INFO] [stderr] | [INFO] [stderr] 97 | /// [`ClientInner::worker_semaphore`] which is initialised with this many permits. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `ClientInner` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `upload_file_concurrent` [INFO] [stderr] --> src/media.rs:562:55 [INFO] [stderr] | [INFO] [stderr] 562 | /// For files that benefit from parallelism use [`upload_file_concurrent`]. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ no item named `upload_file_concurrent` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `iter_download` [INFO] [stderr] --> src/media.rs:1022:16 [INFO] [stderr] | [INFO] [stderr] 1022 | /// Like [`iter_download`] but routes to a specific DC. [INFO] [stderr] | ^^^^^^^^^^^^^ no item named `iter_download` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `download_media` [INFO] [stderr] --> src/media.rs:1054:16 [INFO] [stderr] | [INFO] [stderr] 1054 | /// Like [`download_media`] but routes `GetFile` to `dc_id`. [INFO] [stderr] | ^^^^^^^^^^^^^^ no item named `download_media` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `download_media_concurrent` [INFO] [stderr] --> src/media.rs:1164:16 [INFO] [stderr] | [INFO] [stderr] 1164 | /// Like [`download_media_concurrent`] but routes `GetFile` to `dc_id`. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `download_media_concurrent` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `download_location` [INFO] [stderr] --> src/media.rs:1496:16 [INFO] [stderr] | [INFO] [stderr] 1496 | /// Like [`download_location`] but also returns the file's DC id. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ no item named `download_location` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `InputFileLocation` [INFO] [stderr] --> src/media.rs:1512:26 [INFO] [stderr] | [INFO] [stderr] 1512 | /// Extract a download [`InputFileLocation`] and DC id from a raw `MessageMedia`. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ no item named `InputFileLocation` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `IncomingMessage::download_media_with` [INFO] [stderr] --> src/media.rs:1514:15 [INFO] [stderr] | [INFO] [stderr] 1514 | /// Used by [`IncomingMessage::download_media_with`]. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `IncomingMessage` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `ban_participant` [INFO] [stderr] --> src/participants.rs:233:68 [INFO] [stderr] | [INFO] [stderr] 233 | /// Kick a user from a basic group (chat). For channels, use [`ban_participant`]. [INFO] [stderr] | ^^^^^^^^^^^^^^^ no item named `ban_participant` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `InputReactions` [INFO] [stderr] --> src/participants.rs:551:45 [INFO] [stderr] | [INFO] [stderr] 551 | /// Accepts anything that converts to [`InputReactions`]: [INFO] [stderr] | ^^^^^^^^^^^^^^ no item named `InputReactions` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `InputMessage` [INFO] [stderr] --> src/update.rs:587:16 [INFO] [stderr] | [INFO] [stderr] 587 | /// Full [`InputMessage`] to the same chat without quoting (clientless). [INFO] [stderr] | ^^^^^^^^^^^^ no item named `InputMessage` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `InputMessage` [INFO] [stderr] --> src/update.rs:593:16 [INFO] [stderr] | [INFO] [stderr] 593 | /// Full [`InputMessage`] to the same chat without quoting. [INFO] [stderr] | ^^^^^^^^^^^^ no item named `InputMessage` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `download_all_with_reupload` [INFO] [stderr] --> src/cdn_download.rs:131:15 [INFO] [stderr] | [INFO] [stderr] 131 | /// Use [`download_all_with_reupload`] if you need to handle reupload. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `download_all_with_reupload` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `help.configSimple` [INFO] [stderr] --> src/special_config.rs:27:47 [INFO] [stderr] | [INFO] [stderr] 27 | //! blob. After decryption a TL-serialised [`help.configSimple`] is returned, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ no item named `help.configSimple` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `send` [INFO] [stderr] --> src/transport_intermediate.rs:38:72 [INFO] [stderr] | [INFO] [stderr] 38 | /// Wrap an existing stream (the init byte will be sent on first [`send`]). [INFO] [stderr] | ^^^^ no item named `send` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `Dispatcher::on_message_fsm` [INFO] [stderr] --> src/fsm.rs:27:7 [INFO] [stderr] | [INFO] [stderr] 27 | /// [`Dispatcher::on_message_fsm`]. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `Dispatcher` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `clear_all` [INFO] [stderr] --> src/fsm.rs:191:15 [INFO] [stderr] | [INFO] [stderr] 191 | /// use [`clear_all`] to reset both. [INFO] [stderr] | ^^^^^^^^^ no item named `clear_all` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `forward_messages` [INFO] [stderr] --> src/lib.rs:5292:16 [INFO] [stderr] | [INFO] [stderr] 5292 | /// Like [`forward_messages`] but parses the Updates response and returns [INFO] [stderr] | ^^^^^^^^^^^^^^^^ no item named `forward_messages` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `InputBotInlineMessageId` [INFO] [stderr] --> src/lib.rs:5672:41 [INFO] [stderr] | [INFO] [stderr] 5672 | /// Edit an inline message by its [`InputBotInlineMessageId`]. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ no item named `InputBotInlineMessageId` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `download_media_to_file` [INFO] [stderr] --> src/lib.rs:6119:16 [INFO] [stderr] | [INFO] [stderr] 6119 | /// Like [`download_media_to_file`] but routes `GetFile` to `dc_id`. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ no item named `download_media_to_file` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: public documentation for `send_chat_action` links to private item `Self::send_chat_action_ex` [INFO] [stderr] --> src/lib.rs:6191:61 [INFO] [stderr] | [INFO] [stderr] 6191 | /// For forum topic support use [`send_chat_action_ex`](Self::send_chat_action_ex) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] = note: `#[warn(rustdoc::private_intra_doc_links)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `delete_channel` [INFO] [stderr] --> src/lib.rs:7861:66 [INFO] [stderr] | [INFO] [stderr] 7861 | /// Only the creator can delete the chat. For channels use [`delete_channel`]. [INFO] [stderr] | ^^^^^^^^^^^^^^ no item named `delete_channel` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `kick_participant` [INFO] [stderr] --> src/lib.rs:7869:48 [INFO] [stderr] | [INFO] [stderr] 7869 | /// For basic groups, kick yourself with [`kick_participant`] or use [INFO] [stderr] | ^^^^^^^^^^^^^^^^ no item named `kick_participant` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `delete_dialog` [INFO] [stderr] --> src/lib.rs:7870:11 [INFO] [stderr] | [INFO] [stderr] 7870 | /// [`delete_dialog`] to just hide it. [INFO] [stderr] | ^^^^^^^^^^^^^ no item named `delete_dialog` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `BannedRightsBuilder` [INFO] [stderr] --> src/lib.rs:7979:29 [INFO] [stderr] | [INFO] [stderr] 7979 | /// individually. Use [`BannedRightsBuilder`] via the closure to specify [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ no item named `BannedRightsBuilder` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `delete_invite_link` [INFO] [stderr] --> src/lib.rs:8221:48 [INFO] [stderr] | [INFO] [stderr] 8221 | /// To also remove it from the list call [`delete_invite_link`] afterwards. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ no item named `delete_invite_link` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `revoke_invite_link` [INFO] [stderr] --> src/lib.rs:8337:55 [INFO] [stderr] | [INFO] [stderr] 8337 | /// The link must already be revoked first (use [`revoke_invite_link`]). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ no item named `revoke_invite_link` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `get_authorizations` [INFO] [stderr] --> src/lib.rs:8936:69 [INFO] [stderr] | [INFO] [stderr] 8936 | /// Terminate a specific session by its `hash` (obtained from [`get_authorizations`]). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ no item named `get_authorizations` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `get_send_as_peers` [INFO] [stderr] --> src/lib.rs:9542:63 [INFO] [stderr] | [INFO] [stderr] 9542 | /// `send_as_peer` must be one of the peers returned by [`get_send_as_peers`]. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ no item named `get_send_as_peers` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `import_qr_token` [INFO] [stderr] --> src/lib.rs:10497:16 [INFO] [stderr] | [INFO] [stderr] 10497 | /// Call [`import_qr_token`] once the user scans it, then poll until you [INFO] [stderr] | ^^^^^^^^^^^^^^^ no item named `import_qr_token` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `export_login_token` [INFO] [stderr] --> src/lib.rs:10499:19 [INFO] [stderr] | [INFO] [stderr] 10499 | /// or call [`export_login_token`] again to check. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ no item named `export_login_token` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `Client::compute_password_check` [INFO] [stderr] --> src/lib.rs:10795:11 [INFO] [stderr] | [INFO] [stderr] 10795 | /// [`Client::compute_password_check`] to obtain the `InputCheckPasswordSRP`. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the struct `Client` has no field or associated item named `compute_password_check` [INFO] [stderr] [INFO] [stderr] warning: this URL is not a hyperlink [INFO] [stderr] --> src/dc_migration.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | /// Source: https://core.telegram.org/mtproto/DC [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: bare URLs are not automatically turned into clickable links [INFO] [stderr] = note: `#[warn(rustdoc::bare_urls)]` on by default [INFO] [stderr] help: use an automatic link instead [INFO] [stderr] | [INFO] [stderr] 21 | /// Source: <https://core.telegram.org/mtproto/DC> [INFO] [stderr] | + + [INFO] [stderr] [INFO] [stderr] warning: `ferogram` (lib doc) generated 36 warnings (run `cargo fix --lib -p ferogram` to apply 1 suggestion) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.95s [INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/ferogram/index.html [INFO] running `Command { std: "docker" "stop" "-t" "1" "6bc54f4b4446af8aefdaa694dd077df7f2424674b7bc2f2ad9e84f10142110be", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6bc54f4b4446af8aefdaa694dd077df7f2424674b7bc2f2ad9e84f10142110be", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6bc54f4b4446af8aefdaa694dd077df7f2424674b7bc2f2ad9e84f10142110be", kill_on_drop: false }` [INFO] [stdout] 6bc54f4b4446af8aefdaa694dd077df7f2424674b7bc2f2ad9e84f10142110be