oficina / docs Public

Docs mails sign-in links off the request path, and refuses at the door

Links are mailed by a bounded, non-blocking queue only to permitted
addresses, so neither the answer nor its timing reveals the allowlist.
A refused address sees the door inside the 403, not bare text. Tests are
hermetic. Reviewed by GPT-6-Astra via Codex (#76).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Squashed from fix/keymail-signin into main.
Paul Campbell pushed by claude agent, operated by paul@keymail.dev 6fa77852776bf3a431ba31171368a393d5cc0bbb parent d72b1d0
14 files changed, +1067 −25
  • internal/docs/admission_test.go +4 −1
  • internal/docs/app.go +22 −5
  • internal/docs/auth.go +21 −18
  • internal/docs/auth_allowlist_test.go +2 −1
  • internal/docs/auth_keymail_test.go +15 −0
  • internal/docs/auth_navigation.go +74 −0
  • internal/docs/home_router_integration_test.go +4 −0
  • internal/docs/keymail_hermetic_test.go +25 −0
  • internal/docs/keymailtest/keymailtest.go +211 −0
  • internal/docs/mailqueue.go +283 −0
  • internal/docs/mailqueue_test.go +299 −0
  • internal/docs/render.go +1 −0
  • internal/docs/signin_timing_test.go +105 −0
  • internal/docs/testing.go +1 −0

CI passed — run details

CI log
=== gate ===
=== fixtures: node dependencies

added 20 packages, and audited 21 packages in 623ms

5 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm warn allow-scripts 1 package has install scripts not yet covered by allowScripts:
npm warn allow-scripts   esbuild@0.28.2 (postinstall: node install.js)
npm warn allow-scripts
npm warn allow-scripts Run `npm approve-scripts --allow-scripts-pending` to review, or `npm approve-scripts <pkg>` to allow.
=== fixtures: the save queue's retry/drop logic (F1 regression)
✔ a permanent 4xx drops its batch instead of retrying it, and does not poison the next edit (81.957104ms)
✔ a network failure or a 5xx is retried, not dropped (60.398958ms)
✔ a 500 is retried the same way a network failure is, never dropped (60.46873ms)
ℹ tests 3
ℹ suites 0
ℹ pass 3
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 243.785292
=== fixtures: the resync retry/backoff state machine (fix round 2 regression)
✔ a resync that fails is retried with backoff until it succeeds, without ever running twice at once (1.405272ms)
✔ the browser's online event retries immediately, not just on the next backoff tick (0.2412ms)
✔ reportDivergence before any failure runs the first attempt without a caller ever calling online (0.162804ms)
ℹ tests 3
ℹ suites 0
ℹ pass 3
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 44.454944
=== fixtures: the live-update cursor and connection policy
✔ a tab advances its own cursor only when its POST is the very next row (1.325905ms)
✔ the cursor never moves backwards when a response is overtaken by this tab's own write (0.324425ms)
✔ a later response still carries the cursor forward (0.183693ms)
✔ a burst of notifications collapses into one fetch at a time (0.159768ms)
✔ an event naming a seq the tab already has fetches nothing (0.132778ms)
✔ a stopped subscriber drops a response that arrives late (0.177061ms)
✔ stop closes the stream, and start opens exactly one (0.158385ms)
✔ a hidden tab closes its stream on a shortened deadline, and activity reopens it (0.59445ms)
✔ switching away and back inside the grace never drops the stream, so nothing has to be caught up (0.177922ms)
✔ a visible tab that is only being READ closes when idle and comes back on any activity (0.213348ms)
✔ activity while streaming defers the idle close rather than reopening anything (0.134521ms)
✔ a stream failure is never reported as a save failure, and heals on activity (0.168585ms)
✔ an empty response advances the cursor without applying anything (0.119093ms)
✔ a failed fetch leaves the cursor alone so the next notification retries it (0.164908ms)
✔ a decode failure retries once through the raw log, then gives up (0.743998ms)
✔ updatesURL spells the query string exactly, in particular raw as the literal raw=1 (0.095448ms)
ℹ tests 16
ℹ suites 0
ℹ pass 16
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 50.191209
=== fixtures: paragraph alignment in the editor
✔ the class names are the ones the server renders (1.111143ms)
✔ left, absent and unknown alignments all render as no class (0.139621ms)
✔ toDOM emits a class only for a known alignment (0.489864ms)
✔ a pasted paragraph round-trips its alignment and nothing else (0.190827ms)
✔ alignFromClasses is the inverse of alignClass for every alignment (0.129682ms)
✔ with no dispatch the command reports and changes nothing (1.583936ms)
✔ every toolbar alignment command sets the value its name promises (0.192159ms)
✔ the command aligns the block the cursor is in, and only that one (0.430273ms)
✔ the command aligns every block a selection spans (0.313515ms)
✔ choosing left clears the attribute rather than storing a value (0.295351ms)
✔ one transaction per click, not one per block (0.329805ms)
✔ the buttons report the alignment of the block the cursor is in (0.237113ms)
✔ a block that has no alignment attribute is left alone (0.317523ms)
ℹ tests 13
ℹ suites 0
ℹ pass 13
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 115.303774
=== fixtures: the font vocabulary and its default
✔ the faces are serif, sans and mono (1.12583ms)
✔ an unmarked run is sans (0.147064ms)
✔ choosing the default clears the mark rather than setting one (0.783041ms)
✔ choosing a non-default face sets that face mark (0.110686ms)
✔ a face this build does not know is not an instruction to clear (0.110166ms)
✔ every font mark reads back as its own face (0.100377ms)
✔ a non-font mark leaves the face at the default (0.098594ms)
✔ a run carrying two font marks reads as the face that is drawn (0.103593ms)
ℹ tests 8
ℹ suites 0
ℹ pass 8
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 47.585977
=== fixtures: what a pasted blank line means
✔ a Google Docs blank line stops being two lines tall (1.120881ms)
✔ two blank lines stay two blank lines (0.157303ms)
✔ a trailing break-only paragraph becomes a trailing blank line (0.149669ms)
✔ a Shift+Enter break inside a line of text is left alone (0.175568ms)
✔ a paragraph ending in a break is left alone (0.122028ms)
✔ an ordinary paste is returned by identity (0.765889ms)
✔ paragraph attributes are carried onto the blank lines (0.134091ms)
✔ a blank line inside a pasted blockquote is fixed too (0.13385ms)
✔ a break-only heading is not a paragraph and is left alone (0.134461ms)
✔ WebKit's copy marker is ignored (0.188823ms)
✔ an ordinary br still parses as a hard_break (0.17159ms)
✔ the slice keeps its open depths (0.094626ms)
ℹ tests 12
ℹ suites 0
ℹ pass 12
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 59.074778
=== fixtures: the indent vocabulary and its clamp
✔ a real level becomes its class (0.704725ms)
✔ zero, null and absent are all the same answer: no indent (0.137557ms)
✔ a run of digits too large for any integer type still clamps (0.126126ms)
✔ a level past the maximum clamps rather than being emitted (0.129412ms)
✔ anything that is not a whole number renders flush left (0.139951ms)
✔ a numeric string is a number, because that is what the wire carries (0.100237ms)
✔ the class round-trips back to its level for a paste (0.132287ms)
✔ the step is the half inch every word processor uses (0.092473ms)
ℹ tests 8
ℹ suites 0
ℹ pass 8
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 47.156836
=== fixtures: the point ladder, and the four-step scale it replaced
✔ the default is offered, is first, and carries no mark (0.718541ms)
✔ every other size maps to its own mark (0.10699ms)
✔ a size string works, because that is what a <select> gives you (3.538654ms)
✔ a size this build does not offer is undefined, never null (0.157324ms)
✔ no marks means the default size (0.168715ms)
✔ a mark reports its own size (0.122278ms)
✔ the four-step scale still reports a size on the ladder (0.146133ms)
✔ the legacy marks are in the group the toolbar clears (0.123961ms)
✔ the ladder wins over a legacy mark on the same run (0.128059ms)
ℹ tests 9
ℹ suites 0
ℹ pass 9
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 50.126018
=== fixtures: the autoformat rules, and the Backspace that undoes one
✔ "- " starts a bulleted list (2.795257ms)
✔ "* " and "+ " start one too (0.410456ms)
✔ "1. " starts a numbered list (0.254064ms)
✔ "> " starts a quote (0.313485ms)
✔ "# " makes a heading, and "### " makes a level-3 one (0.656235ms)
✔ Backspace right after a rule gives back the typed characters (0.521934ms)
✔ Backspace away from a rule declines, leaving Backspace alone (0.160149ms)
✔ the patterns do not fire where they must not (0.105837ms)
✔ a numbered list always starts at 1 while the renderer ignores order (0.303346ms)
ℹ tests 9
ℹ suites 0
ℹ pass 9
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 56.952968
=== fixtures: counting words, including where there are no spaces
✔ nothing is nothing (0.861487ms)
✔ ordinary English (0.105737ms)
✔ punctuation is not a word (0.110476ms)
✔ a language without spaces between words still counts (2.934657ms)
✔ the document count walks every block (0.947158ms)
✔ a paragraph boundary is a word boundary (0.169376ms)
✔ characters are counted with and without spaces (0.146835ms)
✔ no selection means no selection count, not a zero (0.142356ms)
ℹ tests 8
ℹ suites 0
ℹ pass 8
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 64.971912
=== fixtures: which menu items the editor enables
✔ an extraCommands item is enabled by sync (0.825591ms)
✔ print, the module’s own local command, is enabled too (0.130433ms)
✔ an editor command follows what the command reports (0.140362ms)
✔ a checkable item is pressed and enabled while it is the current one (0.188472ms)
✔ the view pair follows the mode after a switch, with no reload (0.187049ms)
✔ an item with no aria-pressed never gains one (0.140753ms)
✔ with no view, editor commands are disabled and local ones are not (0.147055ms)
ℹ tests 7
ℹ suites 0
ℹ pass 7
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 43.876744
=== fixtures: the editor's chrome writes only what changed
✔ a state update that changes nothing writes nothing to the chrome (4.614993ms)
✔ a state update that changes something still writes it (1.132343ms)
✔ no DOM write in either bar bypasses dom-writes.mjs (1.910416ms)
ℹ tests 3
ℹ suites 0
ℹ pass 3
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 104.270342
=== the editor bundle must match a fresh build
wrote internal/docs/static/editor.fedd7579de35d95f.js (336726 bytes)
wrote internal/docs/static/jumpto.58ca95c441b1bd49.js (3234 bytes)
wrote internal/docs/static/share.b7f152cdd9e793ac.js (603 bytes)
=== rust: fmt
=== wasm: clippy, then the artifact the host embeds
warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:436:33
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:454:34
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: `yrs` (lib) generated 66 warnings (run `cargo clippy --fix --lib -p yrs -- -D warnings -D clippy::disallowed_methods` to apply 35 suggestions)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.16s
warning: unused import: `ArrayRef`
  --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:441:33
    |
441 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
441 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:459:34
    |
459 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
459 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /docs-core/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: `yrs` (lib) generated 66 warnings (run `cargo fix --lib -p yrs` to apply 35 suggestions)
    Finished `release` profile [optimized] target(s) in 0.07s
core/target/wasm32-unknown-unknown/release/docs_core.wasm (420763 bytes)
=== rust: build, test
warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:436:33
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:454:34
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: `yrs` (lib) generated 66 warnings (run `cargo fix --lib -p yrs` to apply 35 suggestions)
    Finished `release` profile [optimized] target(s) in 0.07s
warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:436:33
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:454:34
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: `yrs` (lib) generated 66 warnings (run `cargo fix --lib -p yrs` to apply 35 suggestions)
   Compiling docs-core v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/core)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.66s
     Running unittests src/lib.rs (core/target/debug/deps/docs_core-34b4fc1e41c4813c)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/bin/emit_update.rs (core/target/debug/deps/emit_update-f7db4babccdecd03)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/fragment.rs (core/target/debug/deps/fragment-67feeb5f59f7f03a)

running 29 tests
test empty_block_is_preserved_like_html ... ok
test a_hard_break_does_not_split_the_block_it_is_in ... ok
test an_unknown_alignment_is_dropped_from_every_renderer ... ok
test a_document_with_no_alignment_renders_exactly_as_it_did_before ... ok
test empty_document_is_empty_output ... ok
test escapes_html_in_text ... ok
test escapes_json_in_text ... ok
test json_clamps_heading_level_like_html ... ok
test json_keeps_unknown_nodes_and_their_children ... ok
test json_of_an_empty_document_is_an_empty_doc_node ... ok
test nested_blocks_do_not_duplicate_their_text ... ok
test json_names_every_font_mark ... ok
test json_reports_paragraph_alignment ... ok
test json_is_deterministic ... ok
test renders_a_hard_break_in_every_renderer ... ok
test reads_paragraphs_as_blocks ... ok
test renders_headings_and_lists ... ok
test renders_marks ... ok
test renders_every_font_mark_as_a_classed_span ... ok
test renders_paragraphs_as_html ... ok
test json_marks_are_in_a_fixed_order ... ok
test renders_paragraph_alignment_as_a_class ... ok
test renders_font_and_size_marks_as_classed_spans ... ok
test text_sibling_before_a_block_is_separated ... ok
test unknown_nodes_keep_their_text ... ok
test renders_the_document_as_prosemirror_json ... ok
test renders_block_indent_as_a_class ... ok
test renders_the_point_ladder_and_the_scale_it_replaced ... ok
test reports_block_indent_to_the_exporters ... ok

test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/native_rule_convergence.rs (core/target/debug/deps/native_rule_convergence-b20f1e5c73515c92)

running 1 test
test native_rule_updates_converge_through_server_rendering_and_snapshot_reload ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/no_host_imports.rs (core/target/debug/deps/no_host_imports-68e99243d86b6638)

running 1 test
test no_host_imports ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/snapshot.rs (core/target/debug/deps/snapshot-1590225859c7e7fb)

running 5 tests
test garbage_does_not_verify ... ok
test a_snapshot_of_this_document_verifies ... ok
test a_snapshot_replayed_into_an_empty_doc_reproduces_the_document ... ok
test a_snapshot_with_a_parked_update_heals_once_its_dependency_arrives ... ok
test a_snapshot_of_a_different_document_does_not_verify ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/wasm_trap_containment.rs (core/target/debug/deps/wasm_trap_containment-33d11fbe16116a77)

running 2 tests
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
warning: unused import: `ArrayRef`
  --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:441:33
    |
441 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
441 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:459:34
    |
459 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
459 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /docs-core/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

    Blocking waiting for file lock on build directory
warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: `yrs` (lib) generated 66 warnings (run `cargo fix --lib -p yrs` to apply 35 suggestions)
    Finished `release` profile [optimized] target(s) in 0.03s
warning: unused import: `ArrayRef`
  --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /docs-core/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /docs-core/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:441:33
    |
441 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
441 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

core/target/wasm32-unknown-unknown/release/docs_core.wasm (420763 bytes)
warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:459:34
    |
459 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
459 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /docs-core/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /docs-core/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /docs-core/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: `yrs` (lib) generated 66 warnings (run `cargo fix --lib -p yrs` to apply 35 suggestions)
    Finished `release` profile [optimized] target(s) in 0.03s
core/target/wasm32-unknown-unknown/release/docs_core.wasm (420763 bytes)
test borrow_leak_repro_trapping_unicode_mutation ... ok
test trap_on_one_document_does_not_corrupt_others_or_wedge_the_instance ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 21.05s

     Running tests/wire_compat.rs (core/target/debug/deps/wire_compat-43eafb8288347923)

running 6 tests
test abi_rejects_garbage_without_panicking ... ok
test applies_concurrent ... ok
test abi_round_trips_a_fixture ... ok
test applies_hello ... ok
test applies_formatted ... ok
test applies_unicode ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests docs_core

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

=== the embedded wasm must match a fresh build
=== wire compatibility, both directions
--- regenerating fixtures from JS yjs
hello: 27 bytes
unicode: 33 bytes
formatted: 70 bytes
concurrent: 36 bytes
--- fixtures must be unchanged (they are the contract, not an output)
--- Rust reads what JS wrote
warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:436:33
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:454:34
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: `yrs` (lib) generated 66 warnings (run `cargo fix --lib -p yrs` to apply 35 suggestions)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
     Running tests/wire_compat.rs (target/debug/deps/wire_compat-43eafb8288347923)

running 6 tests
test abi_rejects_garbage_without_panicking ... ok
test applies_concurrent ... ok
test abi_round_trips_a_fixture ... ok
test applies_hello ... ok
test applies_formatted ... ok
test applies_unicode ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

--- JS reads what Rust wrote
warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:436:33
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:454:34
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

verify-rust: ok (81 bytes)
wire-gate: ok
=== go: vet, test, gofmt
ok  	github.com/carlosframework/docs/cmd/docs	1.004s
ok  	github.com/carlosframework/docs/internal/core	13.714s
ok  	github.com/carlosframework/docs/internal/docs	81.419s
?   	github.com/carlosframework/docs/internal/docs/keymailtest	[no test files]
ok  	github.com/carlosframework/docs/internal/docs/linkstore	0.214s
ok  	github.com/carlosframework/docs/internal/docs/principalstore	0.078s
ok  	github.com/carlosframework/docs/internal/docs/teamstate	0.010s
ok  	github.com/carlosframework/docs/internal/export	0.110s
ok  	github.com/carlosframework/docs/internal/fonts	0.013s
ok  	github.com/carlosframework/docs/internal/lint	0.049s
?   	github.com/carlosframework/docs/internal/pdf	[no test files]
=== go: build ./... (the app, not just the packages tests import)
gate: ok
=== native ===
warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:441:33
    |
441 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
441 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:459:34
    |
459 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
459 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: `yrs` (lib) generated 66 warnings (run `cargo fix --lib -p yrs` to apply 35 suggestions)
    Finished `release` profile [optimized] target(s) in 0.06s
warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:436:33
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:454:34
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: `yrs` (lib) generated 66 warnings (run `cargo fix --lib -p yrs` to apply 35 suggestions)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
     Running unittests src/lib.rs (native/crdt/target/debug/deps/docs_native_crdt-baf27fb7a3ac90e9)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/bin/rule_wire_probe.rs (native/crdt/target/debug/deps/rule_wire_probe-95cfc30616a0234f)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/bin/wire_fixture.rs (native/crdt/target/debug/deps/wire_fixture-6ca6e9809a89e2b7)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/delete_tail_review.rs (native/crdt/target/debug/deps/delete_tail_review-b92f01671c6adae5)

running 4 tests
test partially_known_delete_range_remains_deleted_when_tail_arrives ... ok
test deletion_received_before_any_source_update_is_preserved ... ok
test unknown_client_deletion_survives_snapshot_before_source_arrives ... ok
test partially_known_delete_range_survives_snapshot_before_tail_arrives ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/replica.rs (native/crdt/target/debug/deps/replica-d3ae6b0fee7b15ce)

running 20 tests
test paragraph_split_keeps_prefix_identity_and_suffix_marks ... ok
test reads_existing_yjs_fragment_without_rewriting ... ok
test rich_paste_preserves_native_marks_and_existing_suffix ... ok
test changing_block_preserves_existing_inline_formatting ... ok
test deleting_and_replacing_inline_images_preserves_surrounding_text ... ok
test rich_paste_rule_retains_suffix_as_separate_paragraph ... ok
test merged_pending_updates_preserve_dependencies_deletes_and_duplicate_delivery ... ok
test rich_paste_at_empty_block_keeps_heading_and_list_structure ... ok
test hard_break_is_inline_and_code_enter_does_not_split_block ... ok
test distinct_display_generations_preserve_peer_and_authoritative_undo ... ok
test list_item_sink_and_lift_keep_text_and_marks ... ok
test selection_anchor_tracks_peer_insertion_in_utf16 ... ok
test cross_paragraph_replacement_keeps_prefix_id_and_formatted_suffix ... ok
test utf16_edits_preserve_identity_and_marks ... ok
test optimistic_newline_typeahead_resolves_new_paragraph_in_source ... ok
test select_all_replaces_multiple_native_text_nodes_and_terminal_separator ... ok
test concurrent_insertions_and_own_undo_preserve_peer ... ok
test toggling_existing_list_changes_type_and_lifts_without_nesting ... ok
test concatenated_log_applies_every_update ... ok
test input_rules_transform_and_backspace_restore_typed_prefix ... ok

test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/rule_delta_convergence.rs (native/crdt/target/debug/deps/rule_delta_convergence-dcfc3ace239235ae)

running 1 test
test every_rule_delta_converges_with_remote_apply ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/snapshot.rs (native/crdt/target/debug/deps/snapshot-f1a86210fa4cfa28)

running 1 test
test a_snapshot_with_a_parked_update_heals_once_its_dependency_arrives ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/structural_commands.rs (native/crdt/target/debug/deps/structural_commands-f0df618b8ab315f7)

running 5 tests
test quote_toggle_lifts_only_selected_block_preserving_prefix_identity_and_marks ... ok
test formatting_does_not_merge_unrelated_existing_adjacent_lists ... ok
test quote_range_can_lift_last_to_first_without_stale_ids ... ok
test quote_wrap_groups_selected_paragraphs_in_one_container ... ok
test adjacent_list_wrapping_merges_only_after_all_targets_are_applied ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests docs_native_crdt

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
     Running unittests src/lib.rs (native/host/target/debug/deps/docs_native_host-e64b9f7cfe9d7d5e)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/sandbox.rs (native/host/target/debug/deps/sandbox-672ce98f639da64f)

running 5 tests
test native_boundary_rejects_client_ids_that_v1_decoder_would_truncate ... ok
test interpreter_executes_native_crdt_without_host_imports ... ok
test selection_anchor_call_does_not_poison_source_interpreter ... ok
test failed_replica_cannot_be_reused ... ok
test generated_source_delta_applies_to_authority_with_protocol_client_ids ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s

   Doc-tests docs_native_host

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s


added 20 packages in 387ms
warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:436:33
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:454:34
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:436:33
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:454:34
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

warning: unused import: `ArrayRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:17:39
   |
17 | use crate::types::array::{ArrayEvent, ArrayRef};
   |                                       ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `XmlElementRef` and `XmlTextRef`
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:22:25
   |
22 | use crate::types::xml::{XmlElementRef, XmlEvent, XmlTextEvent, XmlTextRef};
   |                         ^^^^^^^^^^^^^                          ^^^^^^^^^^

warning: value assigned to `left` is never read
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:288:24
    |
288 |         let mut left = None;
    |                        ^^^^ this value is reassigned later and never used
...
334 |                 left = parent_branch.map.get(sub).cloned();
    |                 ------------------------------------------ `left` is overwritten here before the previous value is read
    |
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:644:29
    |
644 |                 if let Some(mut left) = this.left {
    |                             ----^^^^
    |                             |
    |                             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `ptr`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:730:25
    |
730 |                     let ptr = BranchPtr::from(branch);
    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `branch`
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:447:35
    |
447 |                 ItemContent::Type(branch) => {
    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

warning: method `clock_end` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block.rs:136:12
    |
126 | impl BlockCell {
    | -------------- method in this implementation
...
136 |     pub fn clock_end(&self) -> u32 {
    |            ^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `get_block_mut` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:79:8
   |
23 | impl ClientBlockList {
   | -------------------- method in this implementation
...
79 |     fn get_block_mut(&mut self, clock: u32) -> Option<&mut BlockCell> {
   |        ^^^^^^^^^^^^^

warning: methods `contains` and `get_block_mut` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:306:12
    |
299 | impl BlockStore {
    | --------------- methods in this implementation
...
306 |     pub fn contains(&self, id: &ID) -> bool {
    |            ^^^^^^^^
...
381 |     pub(crate) fn get_block_mut(&mut self, id: &ID) -> Option<&mut BlockCell> {
    |                   ^^^^^^^^^^^^^

warning: struct `Blocks` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:486:19
    |
486 | pub(crate) struct Blocks<'a> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_store.rs:492:8
    |
491 | impl<'a> Blocks<'a> {
    | ------------------- associated function in this implementation
492 |     fn new(update: &'a BlockStore) -> Self {
    |        ^^^

warning: constant `WEAK_REF_FLAGS_QUOTE` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:216:7
    |
216 | const WEAK_REF_FLAGS_QUOTE: u8 = 0b0000_0001;
    |       ^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:218:7
    |
218 | const WEAK_REF_FLAGS_START_ASSOC: u8 = 0b0000_0010;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_ASSOC` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:220:7
    |
220 | const WEAK_REF_FLAGS_END_ASSOC: u8 = 0b0000_0100;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_START_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:222:7
    |
222 | const WEAK_REF_FLAGS_START_UNBOUNDED: u8 = 0b0000_1000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_END_UNBOUNDED` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:224:7
    |
224 | const WEAK_REF_FLAGS_END_UNBOUNDED: u8 = 0b0001_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `WEAK_REF_FLAGS_PARENT_ROOT` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:226:7
    |
226 | const WEAK_REF_FLAGS_PARENT_ROOT: u8 = 0b0010_0000;
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `blocks` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:45:19
   |
29 | impl UpdateBlocks {
   | ----------------- method in this implementation
...
45 |     pub(crate) fn blocks(&self) -> Blocks<'_> {
   |                   ^^^^^^

warning: methods `last_id` and `into_block` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:934:19
    |
879 | impl BlockCarrier {
    | ----------------- methods in this implementation
...
934 |     pub(crate) fn last_id(&self) -> ID {
    |                   ^^^^^^^
...
963 |     pub fn into_block(self) -> Option<Box<Item>> {
    |            ^^^^^^^^^^

warning: struct `Blocks` is never constructed
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1076:19
     |
1076 | pub(crate) struct Blocks<'a> {
     |                   ^^^^^^

warning: associated function `new` is never used
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/update.rs:1082:8
     |
1081 | impl<'a> Blocks<'a> {
     | ------------------- associated function in this implementation
1082 |     fn new(update: &'a UpdateBlocks) -> Self {
     |        ^^^

warning: methods `move_to`, `forward`, `backward`, and `values` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:73:12
    |
 23 | impl BlockIter {
    | -------------- methods in this implementation
...
 73 |     pub fn move_to(&mut self, index: u32, txn: &mut TransactionMut) {
    |            ^^^^^^^
...
 99 |     pub fn forward<T: ReadTxn>(&mut self, txn: &T, len: u32) {
    |            ^^^^^^^
...
186 |     pub fn backward<T: ReadTxn>(&mut self, txn: &mut T, mut len: u32) {
    |            ^^^^^^^^
...
514 |     pub fn values<'a, 'txn, T: ReadTxn>(
    |            ^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:522:12
    |
522 | pub struct Values<'a, 'txn> {
    |            ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/block_iter.rs:528:8
    |
527 | impl<'a, 'txn> Values<'a, 'txn> {
    | ------------------------------- associated function in this implementation
528 |     fn new(iter: &'a mut BlockIter, txn: &'txn mut TransactionMut<'txn>) -> Self {
    |        ^^^

warning: method `remove_at` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/branch.rs:427:19
    |
245 | impl Branch {
    | ----------- method in this implementation
...
427 |     pub(crate) fn remove_at(&self, txn: &mut TransactionMut, index: u32, len: u32) -> u32 {
    |                   ^^^^^^^^^

warning: trait `BlockIterator` is never used
 --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:7:18
  |
7 | pub(crate) trait BlockIterator: TxnIterator<Item = ItemPtr> + Sized {
  |                  ^^^^^^^^^^^^^

warning: trait `BlockSliceIterator` is never used
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:21:18
   |
21 | pub(crate) trait BlockSliceIterator: TxnIterator<Item = ItemSlice> + Sized {
   |                  ^^^^^^^^^^^^^^^^^^

warning: struct `BlockSlices` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:283:19
    |
283 | pub(crate) struct BlockSlices<I>(I)
    |                   ^^^^^^^^^^^

warning: struct `RangeIter` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:311:19
    |
311 | pub(crate) struct RangeIter<I> {
    |                   ^^^^^^^^^

warning: associated items `new` and `begin` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:322:8
    |
318 | / impl<I> RangeIter<I>
319 | | where
320 | |     I: TxnIterator<Item = ItemPtr>,
    | |___________________________________- associated items in this implementation
321 |   {
322 |       fn new(iter: I, start: StickyIndex, end: StickyIndex) -> Self {
    |          ^^^
...
331 |       fn begin<T: ReadTxn>(&mut self, txn: &T, start_offset: &mut u32) -> Option<ItemPtr> {
    |          ^^^^^

warning: enum `RangeIterState` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:439:6
    |
439 | enum RangeIterState {
    |      ^^^^^^^^^^^^^^

warning: struct `Values` is never constructed
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:450:19
    |
450 | pub(crate) struct Values<I> {
    |                   ^^^^^^

warning: associated function `new` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/iter.rs:456:8
    |
455 | impl<I> Values<I> {
    | ----------------- associated function in this implementation
456 |     fn new(iter: I) -> Self {
    |        ^^^

warning: method `get_item` is never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/moving.rs:640:19
    |
410 | impl StickyIndex {
    | ---------------- method in this implementation
...
640 |     pub(crate) fn get_item<T: ReadTxn>(&self, txn: &T) -> Option<ItemPtr> {
    |                   ^^^^^^^^

warning: methods `contains_id`, `right`, and `left` are never used
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/slice.rs:174:12
    |
100 | impl ItemSlice {
    | -------------- methods in this implementation
...
174 |     pub fn contains_id(&self, id: &ID) -> bool {
    |            ^^^^^^^^^^^
...
244 |     pub fn right(&self) -> Option<ItemSlice> {
    |            ^^^^^
...
264 |     pub fn left(&self) -> Option<ItemSlice> {
    |            ^^^^

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:63:18
   |
63 |     pub fn added(&self) -> SubdocsEventIter {
   |                  ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                  |
   |                  the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
   |
63 |     pub fn added(&self) -> SubdocsEventIter<'_> {
   |                                            ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:69:20
   |
69 |     pub fn removed(&self) -> SubdocsEventIter {
   |                    ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                    |
   |                    the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
69 |     pub fn removed(&self) -> SubdocsEventIter<'_> {
   |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/event.rs:75:19
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter {
   |                   ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                   |
   |                   the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
75 |     pub fn loaded(&self) -> SubdocsEventIter<'_> {
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/id_set.rs:595:34
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks {
    |                                  ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
595 |     pub(crate) fn deleted_blocks(&self) -> DeletedBlocks<'_> {
    |                                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:345:20
    |
345 |     pub fn subdocs(&self) -> SubdocsIter {
    |                    ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                    |
    |                    the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
345 |     pub fn subdocs(&self) -> SubdocsIter<'_> {
    |                                         ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:351:25
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids {
    |                         ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                         |
    |                         the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
351 |     pub fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:431:28
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<Store>> {
    |                            ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                            |
    |                            the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
431 |     pub(crate) fn try_read(&self) -> Option<RwLockReadGuard<'_, Store>> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:436:33
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<Store> {
    |                                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
436 |     pub(crate) fn read_blocking(&self) -> RwLockReadGuard<'_, Store> {
    |                                                           +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:445:30
    |
445 |     pub(crate) fn read_async(&self) -> Read<Store> {
    |                              ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                              |
    |                              the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
445 |     pub(crate) fn read_async(&self) -> Read<'_, Store> {
    |                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:449:29
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<Store>> {
    |                             ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
449 |     pub(crate) fn try_write(&self) -> Option<RwLockWriteGuard<'_, Store>> {
    |                                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:454:34
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<Store> {
    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                  |
    |                                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
454 |     pub(crate) fn write_blocking(&self) -> RwLockWriteGuard<'_, Store> {
    |                                                             +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/store.rs:463:31
    |
463 |     pub(crate) fn write_async(&self) -> Write<Store> {
    |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
    |                               |
    |                               the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
463 |     pub(crate) fn write_async(&self) -> Write<'_, Store> {
    |                                               +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:166:18
    |
166 |     fn root_refs(&self) -> RootRefs {
    |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
    |                  |
    |                  the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
166 |     fn root_refs(&self) -> RootRefs<'_> {
    |                                    ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:173:21
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids {
    |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
173 |     fn subdoc_guids(&self) -> SubdocGuids<'_> {
    |                                          ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transaction.rs:179:16
    |
179 |     fn subdocs(&self) -> SubdocsIter {
    |                ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                |
    |                the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
179 |     fn subdocs(&self) -> SubdocsIter<'_> {
    |                                     ++++

warning: hiding a lifetime that's elided elsewhere is confusing
    --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/types/mod.rs:1108:17
     |
1108 |     pub fn iter(&self) -> EventsIter {
     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
     |                 |
     |                 the lifetime is elided here
     |
     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
     |
1108 |     pub fn iter(&self) -> EventsIter<'_> {
     |                                     ++++

warning: types that do not implement `Drop` can still have drop glue, consider instead using `std::mem::needs_drop` to detect whether a type is trivially dropped
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/observer.rs:280:33
    |
280 | pub type Subscription = Arc<dyn Drop + 'static>;
    |                                 ^^^^
    |
    = note: `#[warn(dyn_drop)]` on by default

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/state_vector.rs:93:17
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<ClientID, u32> {
   |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
93 |     pub fn iter(&self) -> std::collections::hash_map::Iter<'_, ClientID, u32> {
   |                                                            +++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/sync/awareness.rs:178:17
    |
178 |     pub fn iter(&self) -> AwarenessIter {
    |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
178 |     pub fn iter(&self) -> AwarenessIter<'_> {
    |                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:18:21
   |
18 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError>;
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
18 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError>;
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:29:25
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError>;
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
29 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError>;
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:43:33
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
   |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                                 |
   |                                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
43 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
   |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:60:29
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
   |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                             |
   |                             the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
60 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
   |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:71:17
   |
71 |     fn transact(&self) -> Transaction;
   |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
   |                 |
   |                 the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
71 |     fn transact(&self) -> Transaction<'_>;
   |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:83:21
   |
83 |     fn transact_mut(&self) -> TransactionMut;
   |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
83 |     fn transact_mut(&self) -> TransactionMut<'_>;
   |                                             ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:87:21
   |
87 |     fn try_transact(&self) -> Result<Transaction, TransactionAcqError> {
   |                     ^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
   |                     |
   |                     the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
87 |     fn try_transact(&self) -> Result<Transaction<'_>, TransactionAcqError> {
   |                                                 ++++

warning: hiding a lifetime that's elided elsewhere is confusing
  --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:94:25
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut, TransactionAcqError> {
   |                         ^^^^^            ^^^^^^^^^^^^^^ the same lifetime is hidden here
   |                         |
   |                         the lifetime is elided here
   |
   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
   |
94 |     fn try_transact_mut(&self) -> Result<TransactionMut<'_>, TransactionAcqError> {
   |                                                        ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:101:33
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut, TransactionAcqError>
    |                                 ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                                 |
    |                                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
101 |     fn try_transact_mut_with<T>(&self, origin: T) -> Result<TransactionMut<'_>, TransactionAcqError>
    |                                                                           ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:115:29
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut
    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                             |
    |                             the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
115 |     fn transact_mut_with<T>(&self, origin: T) -> TransactionMut<'_>
    |                                                                ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:123:17
    |
123 |     fn transact(&self) -> Transaction {
    |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
    |                 |
    |                 the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
123 |     fn transact(&self) -> Transaction<'_> {
    |                                      ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/paulca/.local/state/amadan/runner/repos/oficina__docs/wt/main/native/vendor/yrs-0.23.5/src/transact.rs:128:21
    |
128 |     fn transact_mut(&self) -> TransactionMut {
    |                     ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
    |                     |
    |                     the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
128 |     fn transact_mut(&self) -> TransactionMut<'_> {
    |                                             ++++

Rule wire replay passed 24 incremental/snapshot comparisons and four exact final bodies.
Native checks passed (core-only=1).

landed from fix/keymail-signin

diff --git a/internal/docs/admission_test.go b/internal/docs/admission_test.go
index 0620ac5..e7af3d0 100644
--- a/internal/docs/admission_test.go
+++ b/internal/docs/admission_test.go
@@ -3,6 +3,7 @@ package docs
import (
"context"
"errors"
+ "log/slog"
"net/http"
"net/http/httptest"
"testing"
@@ -152,12 +153,14 @@ func TestAdmissionMailerFailsClosed(t *testing.T) {
granted: func(string) (bool, error) { return false, errors.New("database is stalled") },
}
recorder := &recordingMailer{next: loggingMailerStub{}}
- sender := admissionMailer{next: recorder, list: list}
+ sender := newMailQueue(recorder, listAdmits(list), nil, slog.New(slog.DiscardHandler))
+ t.Cleanup(sender.close)
for _, address := range []string{"mallory@example.com", "alice@example.com"} {
if err := sender.Send(t.Context(), address, "subject", "body"); err != nil {
t.Fatal(err)
}
}
+ sender.wait()
if recorder.sends != 1 || recorder.lastTo != "alice@example.com" {
t.Fatalf("delivery count=%d recipient=%q", recorder.sends, recorder.lastTo)
}
diff --git a/internal/docs/app.go b/internal/docs/app.go
index c834041..548e0b7 100644
--- a/internal/docs/app.go
+++ b/internal/docs/app.go
@@ -153,7 +153,8 @@ type Config struct {
// normalizeAddress) — a real config file has spaces after its
// commas, and people type capitals into an email field.
//
- // admissionMailer restricts email delivery, and rauth.Config.Authorize
+ // The sign-in mail queue restricts email delivery (mailqueue.go,
+ // listAdmits), and rauth.Config.Authorize
// checks verified identities before minting a session. Classification
// does not depend on admission, so an OAuth start cannot reveal membership.
//
@@ -280,6 +281,7 @@ type App struct {
store *Store
handlers *handlers
mailRecorder *recordingMailer // nil outside development; see auth.go
+ signinMail *mailQueue // sign-in links, sent after the response
}
// BootSchema is everything New applies at boot, in apply order.
@@ -460,7 +462,17 @@ func New(cfg Config) (*App, error) {
return nil, fmt.Errorf("docs: build renderer: %w", err)
}
- authPlugin, err := newAuthPlugin(cfg, d.Writer(), instanceKey, mailer, list, logger)
+ // Sign-in links go out after the response, from a worker that asks
+ // the allowlist first (mailqueue.go). Closed by Close, or below if
+ // New fails after this point.
+ signinMail := newMailQueue(mailer, listAdmits(list), nil, logger)
+ built := false
+ defer func() {
+ if !built {
+ signinMail.close()
+ }
+ }()
+ authPlugin, err := newAuthPlugin(cfg, d.Writer(), instanceKey, signinMail, list, logger)
if err != nil {
rt.Close(context.Background())
d.Close()
@@ -591,8 +603,8 @@ func New(cfg Config) (*App, error) {
// the menu was open cannot turn the click into a sign-in loop.
r.Post("/appearance", chrome.HandleAppearance)
r.Post("/signin", h.beginSignin(authPlugin.Begin))
- r.Get("/auth/callback", localAuthGuard(home, authPlugin.Callback))
- r.Get("/auth/verify", localAuthGuard(home, authPlugin.Verify))
+ r.Get("/auth/callback", localAuthGuard(home, doorOnRefusal(authPlugin.Callback, h.signin)))
+ r.Get("/auth/verify", localAuthGuard(home, doorOnRefusal(authPlugin.Verify, h.signin)))
// The published document, and the only route here no session guards.
// It is authorized by the token in its own path (links.go) rather
// than by who is asking — which is what a capability is, and why it
@@ -697,7 +709,8 @@ func New(cfg Config) (*App, error) {
mux := http.NewServeMux()
mux.Handle("/", r)
- return &App{cfg: cfg, db: d, mux: mux, logger: logger, core: rt, store: store, handlers: h, mailRecorder: mailRecorder}, nil
+ built = true
+ return &App{cfg: cfg, db: d, mux: mux, logger: logger, core: rt, store: store, handlers: h, mailRecorder: mailRecorder, signinMail: signinMail}, nil
}
// Store returns the app's document store — models.go's Document,
@@ -718,6 +731,10 @@ func (a *App) Handler() *http.ServeMux { return a.mux }
// module. NewForTest registers this as a t.Cleanup.
func (a *App) Close() error {
var errs []error
+ // First, while the database the allowlist reads is still open.
+ if a.signinMail != nil {
+ a.signinMail.close()
+ }
if a.core != nil {
if err := a.core.Close(context.Background()); err != nil {
errs = append(errs, err)
diff --git a/internal/docs/auth.go b/internal/docs/auth.go
index fa24870..9661838 100644
--- a/internal/docs/auth.go
+++ b/internal/docs/auth.go
@@ -99,7 +99,7 @@ type recordingMailer struct {
mu sync.Mutex
next mail.Sender
// lastTo is recorded alongside lastBody, and it is not decoration.
- // admissionMailer leaves a refused address with exactly the 303 ?sent=1 a
+ // The mail queue leaves a refused address with exactly the 303 ?sent=1 a
// real one gets — deliberately, so the endpoint is not a membership
// oracle — so a caller that reads only lastBody cannot tell "a link
// was mailed to this address" from "somebody else's link is still
@@ -277,23 +277,20 @@ func resolveAllowlist(cfg Config) (allowlist, error) {
return allowlist{}, fmt.Errorf("docs: $DOCS_ALLOWED_ADDRESSES is empty and Env is %q, not %q — refusing to start with no allowlist configured: an instance-per-team app admitting nobody would look identical to one working correctly (see resolveAllowlist's own doc comment), so this refuses rather than boots quietly wrong; set $DOCS_ALLOWED_ADDRESSES to this team's address(es)", cfg.Env, "development")
}
-// admissionMailer restricts delivery without exposing membership through the
-// choice of sign-in ceremony. All addresses reach classification and the same
-// rate limits; only admitted addresses receive mail. Callback admission remains
-// authoritative, including for tokens minted before an address was removed.
-// The underlying flow stores an expiring token before Send; a suppressed token
-// is never delivered. A failed grant lookup suppresses delivery too.
-type admissionMailer struct {
- next mail.Sender
- list allowlist
-}
-
-func (m admissionMailer) Send(ctx context.Context, to, subject, body string) error {
- admitted, err := m.list.allows(to)
- if err != nil || !admitted {
- return nil
+// listAdmits is the sign-in mail queue's admission check (mailqueue.go):
+// list.allows, with a failed grant lookup refusing, as a refusal always
+// has here. It runs on the queue's worker, after the response: every
+// address reaches classification, the same rate limits and the same
+// enqueue, so neither POST /signin's answer nor its timing says who is
+// admitted (Astra on oficina/slides #20: a send inside the request made
+// a permitted address wait for SMTP, 252 ms against 0.35 ms). Callback
+// admission remains authoritative, including for tokens minted before
+// an address was removed; a token never delivered is never redeemed.
+func listAdmits(list allowlist) func(string) bool {
+ return func(to string) bool {
+ admitted, err := list.allows(to)
+ return err == nil && admitted
}
- return m.next.Send(ctx, to, subject, body)
}
// requireAdmission re-asks the front-door question on every request, and
@@ -416,7 +413,7 @@ func newAuthPlugin(cfg Config, writer *sql.DB, instanceKey string, mailer mail.S
DB: writer,
Origin: cfg.Origin,
InstanceKey: instanceKey,
- Mailer: admissionMailer{next: mailer, list: list},
+ Mailer: mailer, // the sign-in mail queue (mailqueue.go)
Authorize: list.admits,
Logger: logger,
Subject: chrome.EmailSubject("Docs"),
@@ -515,6 +512,12 @@ func (h *handlers) signin(w http.ResponseWriter, r *http.Request) {
default:
form.Error = rastrillo.T(r, "docs.signin.error.unknown")
}
+ if refusedHere(r) {
+ // Keymail or a link verified the address and the allowlist
+ // does not hold it, in this very response (doorOnRefusal).
+ // Never from the query. The form is the way on.
+ form.Error = rastrillo.T(r, "docs.signin.error.refused")
+ }
data.Form = form
}
data.Frame = h.frame(r, frameOptions{titleParts: []string{page}, signinPage: true})
diff --git a/internal/docs/auth_allowlist_test.go b/internal/docs/auth_allowlist_test.go
index 6b6c943..118a53d 100644
--- a/internal/docs/auth_allowlist_test.go
+++ b/internal/docs/auth_allowlist_test.go
@@ -59,7 +59,7 @@ func newAllowlistedTestApp(t *testing.T, allowed string) *App {
// uses to skip signin's own keymail classification (which would
// otherwise make a real outbound DNS/HTTPS call per address, per
// signin's own README, entirely beside the point of what these tests
-// check). force=1 selects email but does not bypass admissionMailer.
+// check). force=1 selects email but does not bypass the mail queue's admission check.
func postSignin(app *App, address string) *httptest.ResponseRecorder {
form := url.Values{"address": {address}, "force": {"1"}}
req := httptest.NewRequest(http.MethodPost, "/signin", strings.NewReader(form.Encode()))
@@ -77,6 +77,7 @@ func postSignin(app *App, address string) *httptest.ResponseRecorder {
// back), which a test proving the ABSENCE of a send cannot use: there
// is no link to find in an empty body.
func lastMailBody(app *App) string {
+ app.signinMail.wait() // links are sent after the response
app.mailRecorder.mu.Lock()
defer app.mailRecorder.mu.Unlock()
return app.mailRecorder.lastBody
diff --git a/internal/docs/auth_keymail_test.go b/internal/docs/auth_keymail_test.go
index e360963..ee9883c 100644
--- a/internal/docs/auth_keymail_test.go
+++ b/internal/docs/auth_keymail_test.go
@@ -172,6 +172,7 @@ func keymailOAuthChild(t *testing.T) {
if rec.Code != 303 || rec.Header().Get("Location") != "/signin?sent=1" {
t.Fatalf("mail start: %d %s", rec.Code, rec.Header().Get("Location"))
}
+ app.signinMail.wait()
app.mailRecorder.mu.Lock()
sent := app.mailRecorder.sends
app.mailRecorder.mu.Unlock()
@@ -213,6 +214,19 @@ func keymailOAuthChild(t *testing.T) {
}
callback := request("GET", "/auth/callback?"+url.Values{"state": {state}, "code": {"one-code"}}.Encode(), "")
allowed := tc.admitted && tc.returned == "" && !tc.badState && !tc.badPKCE
+ if !tc.admitted && tc.returned == "" && !tc.badState && !tc.badPKCE {
+ // A verified address the allowlist refuses gets the door,
+ // rendered in the refusal's own 403 — not rastrillo's bare
+ // text, and not a query anybody could type.
+ body := callback.Body.String()
+ if callback.Code != http.StatusForbidden || !strings.Contains(body, `name="address"`) || !strings.Contains(body, "docs.signin.error.refused") && !strings.Contains(body, "can’t sign in to Docs") {
+ t.Fatalf("refused OAuth: %d, want the door with the refusal in a 403:\n%s", callback.Code, body)
+ }
+ spoof := request("GET", "/signin?err=refused", "")
+ if strings.Contains(spoof.Body.String(), "can’t sign in to Docs") {
+ t.Fatal("anybody can show the refusal by visiting /signin?err=refused")
+ }
+ }
home := request("GET", "/", "")
if allowed {
if callback.Code != 303 || home.Code != 200 {
@@ -229,6 +243,7 @@ func keymailOAuthChild(t *testing.T) {
}
}
}
+ app.signinMail.wait()
app.mailRecorder.mu.Lock()
sent := app.mailRecorder.sends
app.mailRecorder.mu.Unlock()
diff --git a/internal/docs/auth_navigation.go b/internal/docs/auth_navigation.go
index b2e828a..3cb31d6 100644
--- a/internal/docs/auth_navigation.go
+++ b/internal/docs/auth_navigation.go
@@ -5,6 +5,7 @@ import (
"amadan.net/oficina/estilo.git/chrome"
"amadan.net/oficina/estilo.git/sky"
"bytes"
+ "context"
"net/http"
"net/url"
"strings"
@@ -94,3 +95,76 @@ func (w *signinResponse) Write(p []byte) (int, error) {
}
return w.body.Write(p)
}
+
+// authRefusal is the bare-text body rastrillo/auth's admit() writes,
+// with a 403, when a verified address is not admitted. rastrillo at the
+// version pinned here has no hook to render anything else, so
+// doorOnRefusal recognises this exact answer;
+// TestKeymailOAuthActualIntegration pins it, so a bump that changes the
+// sentence fails loudly.
+const authRefusal = "This address is verified but not admitted here."
+
+// doorOnRefusal wraps rastrillo's Callback and Verify, the handlers that
+// end in admission, and turns its bare-text refusal into the sign-in
+// door, rendered in the refusal's own 403 by door (h.signin) with the
+// refusal marked on the request context (refusedHere). Every other
+// answer, cookies included, passes through untouched.
+//
+// Rendered, not redirected to ?err=refused: a query parameter is
+// something anybody can type, and the sentence means "you proved this
+// address and it is not admitted". Only someone who has just verified
+// the address reaches it, so it is no oracle. Remove it when rastrillo
+// has a refusal hook (feat/auth-refused-hook) and the pin is bumped.
+func doorOnRefusal(next, door http.HandlerFunc) http.HandlerFunc {
+ return func(w http.ResponseWriter, r *http.Request) {
+ rec := &signinResponse{header: make(http.Header)}
+ next(rec, r)
+ if rec.status == http.StatusForbidden && strings.TrimSpace(rec.body.String()) == authRefusal {
+ for _, c := range rec.header.Values("Set-Cookie") {
+ w.Header().Add("Set-Cookie", c)
+ }
+ w.Header().Set("Cache-Control", "no-store")
+ door(&forcedStatus{ResponseWriter: w, status: http.StatusForbidden},
+ r.WithContext(context.WithValue(r.Context(), refusedKey{}, true)))
+ return
+ }
+ for name, values := range rec.header {
+ for _, v := range values {
+ w.Header().Add(name, v)
+ }
+ }
+ if rec.status == 0 {
+ rec.status = http.StatusOK
+ }
+ w.WriteHeader(rec.status)
+ _, _ = w.Write(rec.body.Bytes())
+ }
+}
+
+// refusedKey marks a request doorOnRefusal is answering with the door.
+type refusedKey struct{}
+
+// refusedHere reports whether r is a refusal doorOnRefusal is rendering.
+func refusedHere(r *http.Request) bool {
+ v, _ := r.Context().Value(refusedKey{}).(bool)
+ return v
+}
+
+// forcedStatus answers with status whatever status the page writes.
+type forcedStatus struct {
+ http.ResponseWriter
+ status int
+ wrote bool
+}
+
+func (f *forcedStatus) WriteHeader(int) {
+ if !f.wrote {
+ f.wrote = true
+ f.ResponseWriter.WriteHeader(f.status)
+ }
+}
+
+func (f *forcedStatus) Write(p []byte) (int, error) {
+ f.WriteHeader(f.status)
+ return f.ResponseWriter.Write(p)
+}
diff --git a/internal/docs/home_router_integration_test.go b/internal/docs/home_router_integration_test.go
index 399903a..d5e3772 100644
--- a/internal/docs/home_router_integration_test.go
+++ b/internal/docs/home_router_integration_test.go
@@ -97,11 +97,15 @@ func routerRedirect(t *testing.T, rec *httptest.ResponseRecorder, want string) s
}
func (b *routerBrowser) localLink(t *testing.T, address string) string {
t.Helper()
+ b.f.app.signinMail.wait()
+ b.f.app.mailRecorder.mu.Lock()
before := b.f.app.mailRecorder.sends
+ b.f.app.mailRecorder.mu.Unlock()
rec := b.do("POST", "/signin", url.Values{"address": {address}, "force": {"1"}}.Encode())
if rec.Code != 303 || !strings.Contains(rec.Header().Get("Location"), "sent=1") {
t.Fatal("local mail begin failed", rec.Code)
}
+ b.f.app.signinMail.wait() // the link is sent after the response
b.f.app.mailRecorder.mu.Lock()
to, body, after := b.f.app.mailRecorder.lastTo, b.f.app.mailRecorder.lastBody, b.f.app.mailRecorder.sends
b.f.app.mailRecorder.mu.Unlock()
diff --git a/internal/docs/keymail_hermetic_test.go b/internal/docs/keymail_hermetic_test.go
new file mode 100644
index 0000000..28cf9d8
--- /dev/null
+++ b/internal/docs/keymail_hermetic_test.go
@@ -0,0 +1,25 @@
+package docs
+
+import (
+ "context"
+ "errors"
+ "net"
+ "testing"
+ "time"
+)
+
+// TestKeymailDiscoveryStaysInProcess: every unforced POST /signin
+// classifies its address (rastrillo/auth's Keymail discovery), so this
+// package's tests — TestSigninNeverWaitsForTheMailer's timing above all
+// — must not ask the real network whether a domain runs Keymail. With
+// keymailtest installed (TestMain) every query is answered NXDOMAIN
+// in-process, so even example.com, which public DNS resolves, must not.
+func TestKeymailDiscoveryStaysInProcess(t *testing.T) {
+ ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
+ defer cancel()
+ addrs, err := net.DefaultResolver.LookupHost(ctx, "example.com")
+ var dnsErr *net.DNSError
+ if !errors.As(err, &dnsErr) || !dnsErr.IsNotFound {
+ t.Fatalf("LookupHost(example.com) = %v, %v; want NXDOMAIN from keymailtest's in-process resolver", addrs, err)
+ }
+}
diff --git a/internal/docs/keymailtest/keymailtest.go b/internal/docs/keymailtest/keymailtest.go
new file mode 100644
index 0000000..352458d
--- /dev/null
+++ b/internal/docs/keymailtest/keymailtest.go
@@ -0,0 +1,211 @@
+// Package keymailtest keeps sign-in's Keymail classification inside the
+// test process. It is imported by tests only.
+//
+// rastrillo/auth (at the version this app pins) builds its classifier
+// with no seams: TXT lookups go through net.DefaultResolver and the
+// well-known probe, the federation lookup and the token exchange go
+// through http.DefaultTransport. So those two globals are the hooks
+// (auth_keymail_test.go's isolated OAuth child swaps the same two).
+// Install replaces both for the life of the test binary:
+//
+// - every DNS query is answered NXDOMAIN by a resolver on loopback,
+// so no DNS packet leaves the process, and a domain with no
+// `_keymail` record is probed directly — keymail.dev's own shape;
+// - an https request to a host registered with Serve is answered
+// in-process by that fixture; anything else falls through to the
+// real transport, where the resolver above makes a name
+// unreachable (IP literals, which httptest servers use, still work).
+//
+// Every address at a domain nobody registered therefore classifies as
+// "not Keymail", which is what every pre-existing sign-in test assumes.
+//
+// Unlike Slides' copy, http.DefaultTransport stays an *http.Transport:
+// home/roster clones it with a type assertion when a team runtime has
+// no transport of its own. Install puts a clone in its place, HTTP/1
+// only, with the fixture router registered for "https"
+// (RegisterProtocol); a host nobody registered is skipped
+// (ErrSkipAltProtocol) and dialled as usual.
+package keymailtest
+
+import (
+ "context"
+ "crypto/rand"
+ "encoding/hex"
+ "encoding/json"
+ "fmt"
+ "net"
+ "net/http"
+ "net/http/httptest"
+ "strings"
+ "sync"
+ "time"
+)
+
+var (
+ mu sync.Mutex
+ servers = map[string]*Server{}
+)
+
+// Install swaps net.DefaultResolver and http.DefaultTransport for the
+// stubs described in the package comment and returns a function that
+// puts them back. Call it once, from TestMain.
+func Install() (restore func(), err error) {
+ dns, err := net.ListenPacket("udp", "127.0.0.1:0")
+ if err != nil {
+ return nil, err
+ }
+ go answerNXDOMAIN(dns)
+ oldResolver, oldTransport := net.DefaultResolver, http.DefaultTransport
+ base, ok := oldTransport.(*http.Transport)
+ if !ok {
+ _ = dns.Close()
+ return nil, fmt.Errorf("keymailtest: http.DefaultTransport is %T, not *http.Transport", oldTransport)
+ }
+ tr := base.Clone()
+ // HTTP/1 only: the bundled HTTP/2 claims the "https" slot on first
+ // use, and the fixture router must hold it.
+ tr.Protocols = new(http.Protocols)
+ tr.Protocols.SetHTTP1(true)
+ tr.RegisterProtocol("https", fixtures{})
+ net.DefaultResolver = &net.Resolver{PreferGo: true, Dial: func(ctx context.Context, _, _ string) (net.Conn, error) {
+ return (&net.Dialer{}).DialContext(ctx, "udp", dns.LocalAddr().String())
+ }}
+ http.DefaultTransport = tr
+ return func() {
+ net.DefaultResolver, http.DefaultTransport = oldResolver, oldTransport
+ _ = dns.Close()
+ }, nil
+}
+
+// answerNXDOMAIN echoes each query back as a "no such name" answer.
+func answerNXDOMAIN(conn net.PacketConn) {
+ b := make([]byte, 4096)
+ for {
+ n, addr, err := conn.ReadFrom(b)
+ if err != nil {
+ return
+ }
+ if n < 12 {
+ continue
+ }
+ reply := append([]byte(nil), b[:n]...)
+ reply[2], reply[3] = 0x81, 0x83 // response, recursion, NXDOMAIN
+ for i := 6; i < 12; i++ {
+ reply[i] = 0 // no answer, authority or additional records
+ }
+ _, _ = conn.WriteTo(reply, addr)
+ }
+}
+
+// fixtures answers https requests to a registered host in-process and
+// hands every other request back to the transport.
+type fixtures struct{}
+
+func (fixtures) RoundTrip(r *http.Request) (*http.Response, error) {
+ mu.Lock()
+ s := servers[r.URL.Host]
+ mu.Unlock()
+ if s == nil || r.URL.Scheme != "https" {
+ return nil, http.ErrSkipAltProtocol
+ }
+ rec := httptest.NewRecorder()
+ s.ServeHTTP(rec, r)
+ res := rec.Result()
+ res.Request = r
+ return res, nil
+}
+
+// Server is one Keymail deployment at one host: the well-known
+// document, the federation lookup for the accounts it holds, and the
+// token exchange for the codes Approve hands out.
+type Server struct {
+ host string
+
+ mu sync.Mutex
+ accounts map[string]bool
+ codes map[string]string
+ lookups int
+ tokens int
+}
+
+// Serve registers a Keymail deployment at host (which is also the
+// address domain it answers for, since nothing publishes a `_keymail`
+// record) holding the given accounts. It is unregistered when the test
+// ends.
+func Serve(t interface{ Cleanup(func()) }, host string, accounts ...string) *Server {
+ s := &Server{host: host, accounts: map[string]bool{}, codes: map[string]string{}}
+ for _, a := range accounts {
+ s.accounts[strings.ToLower(a)] = true
+ }
+ mu.Lock()
+ servers[host] = s
+ mu.Unlock()
+ t.Cleanup(func() {
+ mu.Lock()
+ delete(servers, host)
+ mu.Unlock()
+ })
+ return s
+}
+
+// Approve is Keymail's consent screen saying yes for address: it
+// returns the code the browser would carry back to /auth/callback.
+func (s *Server) Approve(address string) string {
+ var b [12]byte
+ _, _ = rand.Read(b[:])
+ code := hex.EncodeToString(b[:])
+ s.mu.Lock()
+ s.codes[code] = address
+ s.mu.Unlock()
+ return code
+}
+
+// Lookups is how many federation lookups reached this deployment.
+func (s *Server) Lookups() int {
+ s.mu.Lock()
+ defer s.mu.Unlock()
+ return s.lookups
+}
+
+// Tokens is how many token exchanges reached this deployment.
+func (s *Server) Tokens() int {
+ s.mu.Lock()
+ defer s.mu.Unlock()
+ return s.tokens
+}
+
+func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+ w.Header().Set("Content-Type", "application/json")
+ switch r.URL.Path {
+ case "/.well-known/keymail":
+ _ = json.NewEncoder(w).Encode(map[string]any{"version": "1", "reauth": true})
+ case "/api/federation/lookup":
+ s.mu.Lock()
+ s.lookups++
+ ok := s.accounts[strings.ToLower(r.URL.Query().Get("addr"))]
+ s.mu.Unlock()
+ if !ok {
+ w.WriteHeader(http.StatusNotFound)
+ }
+ _ = json.NewEncoder(w).Encode(map[string]bool{"ok": ok})
+ case "/api/oauth/token":
+ var in map[string]string
+ _ = json.NewDecoder(r.Body).Decode(&in)
+ s.mu.Lock()
+ s.tokens++
+ address, ok := s.codes[in["code"]]
+ delete(s.codes, in["code"])
+ s.mu.Unlock()
+ if r.Method != http.MethodPost || !ok {
+ w.WriteHeader(http.StatusBadRequest)
+ _ = json.NewEncoder(w).Encode(map[string]string{"error": "invalid_grant"})
+ return
+ }
+ _ = json.NewEncoder(w).Encode(map[string]any{
+ "access_token": "synthetic", "token_type": "bearer",
+ "address": address, "auth_time": time.Now().Unix(),
+ })
+ default:
+ w.WriteHeader(http.StatusNotFound)
+ }
+}
diff --git a/internal/docs/mailqueue.go b/internal/docs/mailqueue.go
new file mode 100644
index 0000000..60de5a2
--- /dev/null
+++ b/internal/docs/mailqueue.go
@@ -0,0 +1,283 @@
+package docs
+
+import (
+ "context"
+ "fmt"
+ "log/slog"
+ "sync"
+ "sync/atomic"
+ "time"
+
+ "amadan.net/rastrillo/rastrillo/mail"
+)
+
+// mailQueue is the sign-in mailer the auth plugin is given: Send queues
+// the link and returns at once, and one background worker decides
+// whether the address may have it and only then talks to SMTP.
+//
+// Both halves are the no-oracle guarantee, measured rather than
+// reasoned about. When the send ran inside the request, a permitted
+// address waited for the SMTP round trip before its `303 ?sent=1` and a
+// denied one did not: 252 ms against 0.35 ms (Astra on oficina/slides
+// #20). A response time is an answer like any other. So POST /signin
+// does the same synchronous work for every address — the auth plugin's
+// budgets, its link row, this enqueue — and the one admission-dependent
+// step, the send, happens after the response, where nobody can time it.
+//
+// The request path is Send, and Send does no I/O and never blocks: not
+// a send, not an admission check, not even a log line. Every address's
+// link is queued, permitted or not, so how full the queue is never
+// depends on admission either; the worker decides afterwards. A full
+// queue drops the link and counts it in an atomic; the worker logs the
+// count when it next runs. The person is answered exactly as when the
+// queue is empty, because a different answer for a full queue would be
+// one more thing to read. (Astra on #20, round 2.)
+//
+// The worker survives a panic in the mailer: it recovers per message,
+// logs, and keeps draining. Delivery failures are logged, never
+// surfaced: a failure only a permitted address can reach is the oracle
+// again.
+//
+// Nothing but the log pump ever writes to the logger. The worker and
+// close hand their lines to logf, which never blocks: a buffered
+// channel, and a counted drop when it is full. A stalled log sink can
+// therefore hold only the pump's one write — never a request, never the
+// worker, never close (Astra on #20, round 3). The pump ends when the
+// worker does.
+//
+// close drains what is queued within drainTimeout. Past it, the send
+// in flight is cancelled through its context, everything still queued
+// is abandoned and counted, and close waits a short grace for the
+// worker to stop. A mailer that ignores its context is the only way a
+// worker outlives close; that is counted in stuck and logged, best
+// effort, too.
+type mailQueue struct {
+ next mail.Sender
+ admits func(to string) bool
+ // gate, when set, is read off the request's context at enqueue time
+ // and travels with the link; the worker sends only if it said yes.
+ gate func(context.Context) bool
+ logger *slog.Logger
+
+ drainTimeout time.Duration
+ sendTimeout time.Duration
+
+ mu sync.RWMutex // held for reading by Send, for writing by close
+ closed bool
+ jobs chan mailJob
+ dropped atomic.Int64
+ pending sync.WaitGroup
+
+ ctx context.Context // cancelled when close gives up waiting
+ cancel context.CancelFunc
+ done chan struct{}
+
+ logMu sync.RWMutex // logf reads logsClosed; the worker's exit sets it
+ logsClosed bool
+ logs chan logLine // to the pump; logf never blocks on it
+ unlogged atomic.Int64 // lines handed over and not yet written
+ lostLogs atomic.Int64 // lines logf could not hand over
+ stuck atomic.Bool // close gave up on a worker that ignored cancellation
+
+ // refusedLog, when set, is the line the worker logs (through logf,
+ // with a running count and never the address) for each link it
+ // refuses.
+ refusedLog string
+ refusals atomic.Int64
+}
+
+type logLine struct {
+ msg string
+ args []any
+}
+
+type mailJob struct {
+ to, subject, body string
+ gated bool
+}
+
+const (
+ mailQueueDepth = 64
+ mailSendTimeout = time.Minute
+ mailDrainTimeout = 30 * time.Second
+ mailAbandonGrace = 5 * time.Second
+ mailLogDepth = 32
+)
+
+func newMailQueue(next mail.Sender, admits func(string) bool, gate func(context.Context) bool, logger *slog.Logger) *mailQueue {
+ return newMailQueueLogging(next, admits, gate, logger, "")
+}
+
+// newMailQueueLogging is newMailQueue with refusedLog set (see the
+// field).
+func newMailQueueLogging(next mail.Sender, admits func(string) bool, gate func(context.Context) bool, logger *slog.Logger, refusedLog string) *mailQueue {
+ if logger == nil {
+ logger = slog.Default()
+ }
+ ctx, cancel := context.WithCancel(context.Background())
+ q := &mailQueue{next: next, admits: admits, gate: gate, logger: logger,
+ drainTimeout: mailDrainTimeout, sendTimeout: mailSendTimeout,
+ jobs: make(chan mailJob, mailQueueDepth), ctx: ctx, cancel: cancel,
+ done: make(chan struct{}), logs: make(chan logLine, mailLogDepth), refusedLog: refusedLog}
+ go q.pump()
+ go q.run()
+ return q
+}
+
+// Send queues one link. It never blocks, never does I/O and never
+// fails: the request that called it answers the same way whatever
+// happens next.
+func (q *mailQueue) Send(ctx context.Context, to, subject, body string) error {
+ job := mailJob{to: to, subject: subject, body: body, gated: true}
+ if q.gate != nil {
+ job.gated = q.gate(ctx)
+ }
+ q.mu.RLock()
+ defer q.mu.RUnlock()
+ if q.closed {
+ q.dropped.Add(1)
+ return nil
+ }
+ q.pending.Add(1)
+ select {
+ case q.jobs <- job:
+ default:
+ q.pending.Done()
+ q.dropped.Add(1)
+ }
+ return nil
+}
+
+// logf hands one error line to the pump. It never blocks: when the
+// pump is behind, the line is counted in lostLogs instead.
+func (q *mailQueue) logf(msg string, args ...any) {
+ q.logMu.RLock()
+ defer q.logMu.RUnlock()
+ if q.logsClosed {
+ q.lostLogs.Add(1)
+ return
+ }
+ q.unlogged.Add(1)
+ select {
+ case q.logs <- logLine{msg: msg, args: args}:
+ default:
+ q.unlogged.Add(-1)
+ q.lostLogs.Add(1)
+ }
+}
+
+// pump is the only goroutine that writes to the logger. It ends when
+// the worker closes logs on its way out.
+//
+// Its limit, stated rather than engineered around: a write blocked
+// inside the logger (a stalled sink) cannot be interrupted from Go. It
+// can only finish, or die with the process. Closing logs does not reach
+// it mid-write, so a stalled sink leaves this one goroutine behind
+// until the sink moves. Nothing else waits on it: not Send, not the
+// worker, not close.
+func (q *mailQueue) pump() {
+ for l := range q.logs {
+ if n := q.lostLogs.Swap(0); n > 0 {
+ q.logger.Error("docs: sign-in mail log lines lost to a slow log sink", "count", n)
+ }
+ q.logger.Error(l.msg, l.args...)
+ q.unlogged.Add(-1)
+ }
+}
+
+func (q *mailQueue) run() {
+ defer close(q.done)
+ defer func() { // after the last logf below; ends the pump
+ q.logMu.Lock()
+ q.logsClosed = true
+ close(q.logs)
+ q.logMu.Unlock()
+ }()
+ abandoned := 0
+ for job := range q.jobs {
+ q.reportDrops()
+ if q.ctx.Err() != nil {
+ abandoned++
+ } else {
+ q.deliver(job)
+ }
+ q.pending.Done()
+ }
+ q.reportDrops()
+ if abandoned > 0 {
+ q.logf("docs: sign-in links abandoned at shutdown", "count", abandoned)
+ }
+}
+
+// reportDrops logs the links Send had to drop since the last report.
+// Here, on the worker, so the request path never writes a log line.
+func (q *mailQueue) reportDrops() {
+ if n := q.dropped.Swap(0); n > 0 {
+ q.logf("docs: sign-in mail queue full; links dropped", "count", n)
+ }
+}
+
+// deliver sends one link if it may go. A panic in the admission check
+// or the mailer is this message's failure, not the process's.
+func (q *mailQueue) deliver(job mailJob) {
+ defer func() {
+ if p := recover(); p != nil {
+ q.logf("docs: sign-in mail worker recovered from a panic", "panic", fmt.Sprint(p))
+ }
+ }()
+ if !job.gated || !q.admits(job.to) {
+ // Not admitted: the link the auth plugin stored is never
+ // delivered, so it is never redeemed. No address in the log.
+ if q.refusedLog != "" {
+ q.logf(q.refusedLog, "stage", "signin.gate", "refusals_since_boot", q.refusals.Add(1))
+ }
+ return
+ }
+ ctx, cancel := context.WithTimeout(q.ctx, q.sendTimeout)
+ defer cancel()
+ if err := q.next.Send(ctx, job.to, job.subject, job.body); err != nil {
+ q.logf("docs: send sign-in link", "err", err)
+ }
+}
+
+// wait blocks until every link queued so far has been sent or refused,
+// and every line logged about them has been written. Tests use it to
+// read the mailer, and the log, afterwards.
+func (q *mailQueue) wait() {
+ q.pending.Wait()
+ for q.unlogged.Load() > 0 {
+ time.Sleep(time.Millisecond)
+ }
+}
+
+// close stops taking links and drains what is queued, within
+// drainTimeout; then it cancels, abandons the rest, and stops the
+// worker (see the type's comment). It never waits on the log pump:
+// shutdown deliberately does not wait for a write blocked inside the
+// logger, which can only finish or die with the process (see pump).
+func (q *mailQueue) close() {
+ q.mu.Lock()
+ if q.closed {
+ q.mu.Unlock()
+ return
+ }
+ q.closed = true
+ close(q.jobs)
+ q.mu.Unlock()
+ defer q.cancel()
+ select {
+ case <-q.done:
+ return
+ case <-time.After(q.drainTimeout):
+ }
+ q.cancel()
+ select {
+ case <-q.done:
+ case <-time.After(mailAbandonGrace):
+ // Counted, not written: logging here could hang close on the
+ // very sink that may be the trouble. The worker is still running,
+ // so logf is still safe to call, and never blocks.
+ q.stuck.Store(true)
+ q.logf("docs: sign-in mail worker ignored cancellation; left running")
+ }
+}
diff --git a/internal/docs/mailqueue_test.go b/internal/docs/mailqueue_test.go
new file mode 100644
index 0000000..d4b9518
--- /dev/null
+++ b/internal/docs/mailqueue_test.go
@@ -0,0 +1,299 @@
+package docs
+
+import (
+ "context"
+ "fmt"
+ "log/slog"
+ "os"
+ "runtime"
+ "strings"
+ "sync"
+ "testing"
+ "time"
+
+ "github.com/carlosframework/docs/internal/docs/keymailtest"
+)
+
+// stuckHandler is a slog handler whose every write blocks until release
+// is closed: a log sink that has stalled, as a full pipe does. It
+// remembers what it was finally allowed to write.
+type stuckHandler struct {
+ release chan struct{}
+ mu *sync.Mutex
+ msgs *[]string
+}
+
+func (h stuckHandler) Enabled(context.Context, slog.Level) bool { return true }
+func (h stuckHandler) Handle(_ context.Context, r slog.Record) error {
+ <-h.release
+ h.mu.Lock()
+ *h.msgs = append(*h.msgs, r.Message)
+ h.mu.Unlock()
+ return nil
+}
+func (h stuckHandler) WithAttrs([]slog.Attr) slog.Handler { return h }
+func (h stuckHandler) WithGroup(string) slog.Handler { return h }
+
+// funcSender adapts a function to mail.Sender.
+type funcSender func(ctx context.Context, to string) error
+
+func (f funcSender) Send(ctx context.Context, to, _, _ string) error { return f(ctx, to) }
+
+func everyone(string) bool { return true }
+
+// TestMailQueueSendNeverBlocksWhenFull: Send is the request path, so it
+// may not block or do I/O even when the queue is full — not even to log
+// the drop (Astra on oficina/slides #20, round 2, P1: a "queue full" log
+// line on a stalled sink held the request, and saturation is
+// admission-dependent). The worker is stuck on its first link and the
+// log sink is stuck too; twice the queue's depth of Sends must still
+// return at once, and the drops are logged by the worker afterwards.
+func TestMailQueueSendNeverBlocksWhenFull(t *testing.T) {
+ release := make(chan struct{})
+ var once sync.Once
+ free := func() { once.Do(func() { close(release) }) }
+ stuck := funcSender(func(ctx context.Context, _ string) error {
+ select {
+ case <-release:
+ case <-ctx.Done():
+ }
+ return nil
+ })
+ var mu sync.Mutex
+ var msgs []string
+ q := newMailQueue(stuck, everyone, nil, slog.New(stuckHandler{release, &mu, &msgs}))
+ t.Cleanup(func() { free(); q.close() })
+
+ done := make(chan struct{})
+ go func() {
+ for i := 0; i < 2*mailQueueDepth; i++ {
+ _ = q.Send(context.Background(), fmt.Sprintf("p%d@example.test", i), "s", "b")
+ }
+ close(done)
+ }()
+ select {
+ case <-done:
+ case <-time.After(2 * time.Second):
+ free()
+ <-done
+ t.Fatal("Send blocked with the queue full: the request path waited on the queue or the log")
+ }
+ // The drops are the worker's to log, through the pump, once the
+ // sink is free.
+ free()
+ q.close()
+ deadline := time.Now().Add(2 * time.Second)
+ for time.Now().Before(deadline) {
+ mu.Lock()
+ for _, m := range msgs {
+ if strings.Contains(m, "links dropped") {
+ mu.Unlock()
+ return
+ }
+ }
+ mu.Unlock()
+ time.Sleep(5 * time.Millisecond)
+ }
+ t.Fatalf("no drop was logged with twice the queue's depth sent; the log has %q", msgs)
+}
+
+// TestMailQueueQueuesEveryAddress: the queue's fill level must not
+// depend on admission, so Send queues a refused address's link exactly
+// as it queues a permitted one; only the worker asks.
+func TestMailQueueQueuesEveryAddress(t *testing.T) {
+ release := make(chan struct{})
+ stuck := funcSender(func(ctx context.Context, _ string) error {
+ select {
+ case <-release:
+ case <-ctx.Done():
+ }
+ return nil
+ })
+ var asked sync.Map
+ admits := func(to string) bool { asked.Store(to, true); return to == "first@example.test" }
+ q := newMailQueue(stuck, admits, nil, slog.New(slog.DiscardHandler))
+ t.Cleanup(func() { close(release); q.close() })
+ _ = q.Send(context.Background(), "first@example.test", "s", "b")
+ deadline := time.Now().Add(2 * time.Second)
+ for _, ok := asked.Load("first@example.test"); !ok && time.Now().Before(deadline); _, ok = asked.Load("first@example.test") {
+ time.Sleep(5 * time.Millisecond)
+ }
+ for i := 0; i < 5; i++ {
+ _ = q.Send(context.Background(), fmt.Sprintf("refused%d@example.test", i), "s", "b")
+ }
+ if got := len(q.jobs); got != 5 {
+ t.Fatalf("queued %d refused links, want all 5: fill level must not depend on admission", got)
+ }
+}
+
+// TestMailQueueSurvivesAPanic: a panic in the mailer is that message's
+// failure; the worker recovers, logs, and sends the next one (Astra,
+// round 2, P2).
+func TestMailQueueSurvivesAPanic(t *testing.T) {
+ var mu sync.Mutex
+ var sent []string
+ calls := 0
+ s := funcSender(func(_ context.Context, to string) error {
+ mu.Lock()
+ defer mu.Unlock()
+ calls++
+ if calls == 1 {
+ panic("mailer exploded")
+ }
+ sent = append(sent, to)
+ return nil
+ })
+ q := newMailQueue(s, everyone, nil, slog.New(slog.DiscardHandler))
+ t.Cleanup(q.close)
+ _ = q.Send(context.Background(), "first@example.test", "s", "b")
+ _ = q.Send(context.Background(), "second@example.test", "s", "b")
+ q.wait()
+ mu.Lock()
+ defer mu.Unlock()
+ if len(sent) != 1 || sent[0] != "second@example.test" {
+ t.Fatalf("sent = %v, want the second link after the first panicked", sent)
+ }
+}
+
+// TestMailQueueCloseIsBoundedAndStopsTheWorker: close drains within its
+// deadline, then cancels the send in flight, abandons the rest, and the
+// worker is gone — no goroutine outlives close (Astra, round 2, P2).
+func TestMailQueueCloseIsBoundedAndStopsTheWorker(t *testing.T) {
+ baseline := runtime.NumGoroutine()
+ honours := funcSender(func(ctx context.Context, _ string) error {
+ <-ctx.Done() // a relay that never answers, but obeys cancellation
+ return ctx.Err()
+ })
+ q := newMailQueue(honours, everyone, nil, slog.New(slog.DiscardHandler))
+ q.drainTimeout = 50 * time.Millisecond
+ for i := 0; i < 3; i++ {
+ _ = q.Send(context.Background(), fmt.Sprintf("p%d@example.test", i), "s", "b")
+ }
+ start := time.Now()
+ q.close()
+ if took := time.Since(start); took > 2*time.Second {
+ t.Fatalf("close took %v, want about its 50ms deadline", took)
+ }
+ select {
+ case <-q.done:
+ default:
+ t.Fatal("the worker was still running after close")
+ }
+ deadline := time.Now().Add(time.Second)
+ for runtime.NumGoroutine() > baseline && time.Now().Before(deadline) {
+ time.Sleep(5 * time.Millisecond)
+ }
+ if n := runtime.NumGoroutine(); n > baseline {
+ t.Fatalf("%d goroutines after close, %d before: the queue leaked", n, baseline)
+ }
+}
+
+// mailWorkers counts goroutines running a sign-in mail queue's worker
+// or log pump — the targeted leak check (goleak's idea, without the
+// dependency) TestMain runs after the package's tests.
+func mailWorkers() int {
+ buf := make([]byte, 1<<22)
+ stacks := string(buf[:runtime.Stack(buf, true)])
+ return strings.Count(stacks, "(*mailQueue).run(") + strings.Count(stacks, "(*mailQueue).pump(")
+}
+
+// TestMailQueueCloseIsBoundedWithAStalledLogger: close reports through
+// nothing that can block, and never waits on the log pump. With the log
+// sink stalled — every write hangs — and a relay that never answers but
+// honours cancellation, and WHILE THE SINK IS STILL STALLED:
+//
+// - close returns within its bound;
+// - the mail worker has exited;
+// - at most the one log pump remains, blocked in its write.
+//
+// A write blocked inside the logger cannot be interrupted from Go; it
+// can only finish or die with the process, and shutdown deliberately
+// does not wait for it. So only once the sink is released must the pump
+// exit and the goroutine count return to its baseline (Astra on #20,
+// rounds 3 and 4). The test fails if close waited on the pump, or if
+// the pump could hold the worker.
+func TestMailQueueCloseIsBoundedWithAStalledLogger(t *testing.T) {
+ waitFor := func(cond func() bool) bool {
+ deadline := time.Now().Add(2 * time.Second)
+ for !cond() && time.Now().Before(deadline) {
+ time.Sleep(5 * time.Millisecond)
+ }
+ return cond()
+ }
+ // Baselines, not zero: another test's queue may still be shutting
+ // down beside this one.
+ baseline, workers := runtime.NumGoroutine(), mailWorkers()
+ release := make(chan struct{})
+ var once sync.Once
+ free := func() { once.Do(func() { close(release) }) }
+ t.Cleanup(free)
+ var mu sync.Mutex
+ var msgs []string
+ honours := funcSender(func(ctx context.Context, _ string) error {
+ <-ctx.Done()
+ return ctx.Err()
+ })
+ q := newMailQueue(honours, everyone, nil, slog.New(stuckHandler{release, &mu, &msgs}))
+ q.drainTimeout = 50 * time.Millisecond
+ for i := 0; i < 2*mailQueueDepth; i++ { // drops too, so there is plenty to log
+ _ = q.Send(context.Background(), fmt.Sprintf("p%d@example.test", i), "s", "b")
+ }
+ closed := make(chan struct{})
+ go func() { q.close(); close(closed) }()
+ select {
+ case <-closed:
+ case <-time.After(2 * time.Second):
+ free()
+ <-closed
+ t.Fatal("close hung on a stalled log sink")
+ }
+
+ // The sink is still stalled.
+ select {
+ case <-q.done:
+ default:
+ t.Fatal("the worker was still running after close, held by the stalled log sink")
+ }
+ if !waitFor(func() bool { return runtime.NumGoroutine() <= baseline+1 }) {
+ t.Fatalf("%d goroutines with the sink stalled, %d before: more than the one blocked log pump remains", runtime.NumGoroutine(), baseline)
+ }
+ if n := mailWorkers(); n > workers+1 {
+ t.Fatalf("%d mail queue goroutines with the sink stalled, %d before: want at most the log pump more", n, workers)
+ }
+
+ // Released, the pump finishes its write and exits.
+ free()
+ if !waitFor(func() bool { return mailWorkers() <= workers && runtime.NumGoroutine() <= baseline }) {
+ t.Fatalf("after release: %d mail queue goroutines, %d goroutines against %d before", mailWorkers(), runtime.NumGoroutine(), baseline)
+ }
+}
+
+// TestMain keeps Keymail classification inside the process: every
+// unforced POST /signin classifies its address, and without this each
+// one would ask the real network whether the domain runs Keymail. Every
+// DNS query is answered NXDOMAIN and only fixtures a test registers
+// answer HTTPS (keymailtest), so every address here is plain email.
+//
+// It also fails the run if any sign-in mail queue worker or log pump
+// outlives the package's tests: every app a test builds is closed in its
+// cleanup (NewForTestWith).
+func TestMain(m *testing.M) {
+ restore, err := keymailtest.Install()
+ if err != nil {
+ fmt.Fprintln(os.Stderr, "keymailtest.Install:", err)
+ os.Exit(1)
+ }
+ code := m.Run()
+ if code == 0 {
+ deadline := time.Now().Add(5 * time.Second)
+ for mailWorkers() > 0 && time.Now().Before(deadline) {
+ time.Sleep(10 * time.Millisecond)
+ }
+ if n := mailWorkers(); n > 0 {
+ fmt.Fprintf(os.Stderr, "FAIL: %d sign-in mail queue goroutines still running after the tests\n", n)
+ code = 1
+ }
+ }
+ restore()
+ os.Exit(code)
+}
diff --git a/internal/docs/render.go b/internal/docs/render.go
index fd82cfe..0488cb7 100644
--- a/internal/docs/render.go
+++ b/internal/docs/render.go
@@ -287,6 +287,7 @@ var Catalog = rastrillo.Catalog{
"docs.signin.error.address": "That doesn’t look like an email address.",
"docs.signin.error.expired": "That link has expired or was already used. Enter your email to get a new one.",
"docs.signin.error.unknown": "We couldn’t sign you in. Enter your email to get a new link.",
+ "docs.signin.error.refused": "That address can’t sign in to Docs. Use a different address, or ask whoever runs this team to add it.",
// docs.signout.label is the sign-out control's text — both its
// button label and its accessible name. It lives in the shell
diff --git a/internal/docs/signin_timing_test.go b/internal/docs/signin_timing_test.go
new file mode 100644
index 0000000..bf2d2be
--- /dev/null
+++ b/internal/docs/signin_timing_test.go
@@ -0,0 +1,105 @@
+package docs
+
+import (
+ "context"
+ "net/http"
+ "net/http/httptest"
+ "net/url"
+ "strings"
+ "sync"
+ "testing"
+ "time"
+)
+
+// blockingMailer holds every Send until release is closed — an SMTP
+// relay that takes as long as the test likes.
+type blockingMailer struct {
+ release chan struct{}
+ mu sync.Mutex
+ to []string
+}
+
+func (m *blockingMailer) Send(_ context.Context, to, _, _ string) error {
+ <-m.release
+ m.mu.Lock()
+ m.to = append(m.to, to)
+ m.mu.Unlock()
+ return nil
+}
+
+func (m *blockingMailer) sent() []string {
+ m.mu.Lock()
+ defer m.mu.Unlock()
+ return append([]string(nil), m.to...)
+}
+
+// TestSigninNeverWaitsForTheMailer: when the send ran inside the
+// request (admissionMailer), a permitted address waited for SMTP before
+// its ?sent=1 and a refused one did not — Astra measured 252 ms against
+// 0.35 ms on Slides, which had the same shape — so the allowlist was
+// readable off a stopwatch. With the mailer blocked, every POST —
+// permitted, refused, and both with force=1 — must answer, and the
+// permitted links must then go out.
+func TestSigninNeverWaitsForTheMailer(t *testing.T) {
+ bm := &blockingMailer{release: make(chan struct{})}
+ app, err := NewForTestWith(t, Config{AllowedAddresses: "member@example.test", Mailer: bm})
+ if err != nil {
+ t.Fatal(err)
+ }
+ var once sync.Once
+ free := func() { once.Do(func() { close(bm.release) }) }
+ t.Cleanup(free) // before the app's Close, which drains the queue
+
+ for _, form := range []url.Values{
+ {"address": {"member@example.test"}},
+ {"address": {"outsider@example.test"}},
+ {"address": {"member@example.test"}, "force": {"1"}},
+ {"address": {"outsider@example.test"}, "force": {"1"}},
+ } {
+ done := make(chan *httptest.ResponseRecorder, 1)
+ go func() {
+ req := httptest.NewRequest(http.MethodPost, "/signin", strings.NewReader(form.Encode()))
+ req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
+ req.Header.Set("Sec-Fetch-Site", "same-origin")
+ rec := httptest.NewRecorder()
+ app.Handler().ServeHTTP(rec, req)
+ done <- rec
+ }()
+ select {
+ case rec := <-done:
+ if rec.Code != http.StatusSeeOther || !strings.Contains(rec.Header().Get("Location"), "sent=1") {
+ t.Errorf("POST %v: %d %q, want 303 ?sent=1", form, rec.Code, rec.Header().Get("Location"))
+ }
+ case <-time.After(2 * time.Second):
+ t.Errorf("POST %v waited on the mailer: the response time says the address is permitted", form)
+ free()
+ <-done
+ }
+ }
+
+ free()
+ deadline := time.Now().Add(5 * time.Second)
+ for len(bm.sent()) < 2 && time.Now().Before(deadline) {
+ time.Sleep(10 * time.Millisecond)
+ }
+ time.Sleep(50 * time.Millisecond)
+ if got := bm.sent(); len(got) != 2 || got[0] != "member@example.test" || got[1] != "member@example.test" {
+ t.Fatalf("mail sent = %v, want two links, both to member@example.test", got)
+ }
+}
+
+// TestAppCloseStopsTheMailWorker: the app owns its queue, and Close
+// stops its worker.
+func TestAppCloseStopsTheMailWorker(t *testing.T) {
+ app, err := NewForTest(t)
+ if err != nil {
+ t.Fatal(err)
+ }
+ q := app.signinMail
+ _ = app.Close()
+ select {
+ case <-q.done:
+ case <-time.After(2 * time.Second):
+ t.Fatal("the sign-in mail worker was still running after App.Close")
+ }
+}
diff --git a/internal/docs/testing.go b/internal/docs/testing.go
index 61104db..704e04c 100644
--- a/internal/docs/testing.go
+++ b/internal/docs/testing.go
@@ -118,6 +118,7 @@ func (a *App) TestSignIn(t *testing.T, address string) (string, error) {
return "", fmt.Errorf("docs: TestSignIn: POST /signin redirected to %q, want a %q outcome", loc, "?sent=1")
}
+ a.signinMail.wait() // the link is sent after the response (mailqueue.go)
a.mailRecorder.mu.Lock()
to, body, after := a.mailRecorder.lastTo, a.mailRecorder.lastBody, a.mailRecorder.sends
a.mailRecorder.mu.Unlock()