[INFO] fetching crate canadensis_data_types 0.3.0...
[INFO] documenting canadensis_data_types-0.3.0 against 1.69.0 for beta-1.70-rustdoc-1
[INFO] extracting crate canadensis_data_types 0.3.0 into /workspace/builds/worker-4-tc1/source
[INFO] validating manifest of crates.io crate canadensis_data_types 0.3.0 on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate canadensis_data_types 0.3.0
[INFO] finished tweaking crates.io crate canadensis_data_types 0.3.0
[INFO] tweaked toml for crates.io crate canadensis_data_types 0.3.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" "/workspace/cargo-home/bin/cargo" "+1.69.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9ad181954c856a39290489acff5b5ffef2c3ebe25b27b69a0cd8694cfc1bd2a1
[INFO] running `Command { std: "docker" "start" "-a" "9ad181954c856a39290489acff5b5ffef2c3ebe25b27b69a0cd8694cfc1bd2a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9ad181954c856a39290489acff5b5ffef2c3ebe25b27b69a0cd8694cfc1bd2a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9ad181954c856a39290489acff5b5ffef2c3ebe25b27b69a0cd8694cfc1bd2a1", kill_on_drop: false }`
[INFO] [stdout] 9ad181954c856a39290489acff5b5ffef2c3ebe25b27b69a0cd8694cfc1bd2a1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4a93738a80aeb72242aac6ccb8dc1cad291dba4d935495f3a7cdfc056566ee22
[INFO] running `Command { std: "docker" "start" "-a" "4a93738a80aeb72242aac6ccb8dc1cad291dba4d935495f3a7cdfc056566ee22", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling semver v1.0.17
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]     Checking once_cell v1.17.1
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking nb v1.1.0
[INFO] [stderr]     Checking hash32 v0.2.1
[INFO] [stderr]    Compiling ahash v0.8.3
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling heapless v0.7.16
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking fallible_collections v0.4.7
[INFO] [stderr]    Compiling zerocopy-derive v0.3.2
[INFO] [stderr]    Compiling hash32-derive v0.1.1
[INFO] [stderr]     Checking canadensis_core v0.3.0
[INFO] [stderr]     Checking zerocopy v0.6.1
[INFO] [stderr]     Checking half v2.2.1
[INFO] [stderr]     Checking canadensis_encoding v0.3.0
[INFO] [stderr]  Documenting canadensis_data_types v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: lint `unaligned_references` has been removed: converted into hard error, see issue #82523 <https://github.com/rust-lang/rust/issues/82523> for more information
[INFO] [stdout]  --> src/generated.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[deny(unaligned_references)]
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `unaligned_references` has been removed: converted into hard error, see issue #82523 <https://github.com/rust-lang/rust/issues/82523> for more information
[INFO] [stdout]     --> src/generated.rs:4492:8
[INFO] [stdout]      |
[INFO] [stdout] 4492 | #[deny(unaligned_references)]
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `radian`
[INFO] [stdout]     --> src/generated.rs:1344:54
[INFO] [stdout]      |
[INFO] [stdout] 1344 |   ...                   #[cfg_attr(not(doctest), doc = " [radian]")]
[INFO] [stdout]      |  ________________________________________________^
[INFO] [stdout] 1345 | | ...                   ///
[INFO] [stdout] 1346 | | ...                   /// `saturated float64`
[INFO] [stdout] 1347 | | ...                   ///
[INFO] [stdout] 1348 | | ...                   /// Always aligned,
[INFO] [stdout] 1349 | | ...                   /// size 64 bits
[INFO] [stdout]      | |______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [radian]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]      = note: no item named `radian` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout]      = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `radian`
[INFO] [stdout]     --> src/generated.rs:1351:54
[INFO] [stdout]      |
[INFO] [stdout] 1351 |   ...                   #[cfg_attr(not(doctest), doc = " [radian]")]
[INFO] [stdout]      |  ________________________________________________^
[INFO] [stdout] 1352 | | ...                   ///
[INFO] [stdout] 1353 | | ...                   /// `saturated float64`
[INFO] [stdout] 1354 | | ...                   ///
[INFO] [stdout] 1355 | | ...                   /// Always aligned,
[INFO] [stdout] 1356 | | ...                   /// size 64 bits
[INFO] [stdout]      | |______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [radian]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]      = note: no item named `radian` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `nanosecond`
[INFO] [stdout]     --> src/generated.rs:2594:29
[INFO] [stdout]      |
[INFO] [stdout] 2594 | /                             doc = " [nanosecond] Nanoseconds elapsed since 1970-01-01T00:00:00Z TAI."
[INFO] [stdout] 2595 | |                         )]
[INFO] [stdout] 2596 | |                         ///
[INFO] [stdout] 2597 | |                         /// `saturated int64`
[INFO] [stdout] 2598 | |                         ///
[INFO] [stdout] 2599 | |                         /// Always aligned,
[INFO] [stdout] 2600 | |                         /// size 64 bits
[INFO] [stdout]      | |________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [nanosecond] Nanoseconds elapsed since 1970-01-01T00:00:00Z TAI.
[INFO] [stdout]                ^^^^^^^^^^
[INFO] [stdout]      = note: no item named `nanosecond` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `seconds`
[INFO] [stdout]     --> src/generated.rs:2763:33
[INFO] [stdout]      |
[INFO] [stdout] 2763 | ...   doc = " [seconds]\n The actuator is allowed to enter a safe state (e.g., stop the controlled mechanism, disconnect itself from\n the load, etc. depending on the specifics of the application at hand) if no setpoint or readiness control messages\n have been received in this amount of time. Implementations are allowed to reduce this value, but never increase it."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [seconds]
[INFO] [stdout]               ^^^^^^^
[INFO] [stdout]      = note: no item named `seconds` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:2768:33
[INFO] [stdout]      |
[INFO] [stdout] 2768 | ...   doc = " [second]\n This is the maximum publication period (minimum frequency) for all subjects described in this service.\n Subjects that are clocked by the setpoint should continue being published at least at this rate when setpoint is not\n being updated, unless the actuator is in the SLEEP state.\n The publication periods should be consistent across the group."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `percent`
[INFO] [stdout]     --> src/generated.rs:2981:33
[INFO] [stdout]      |
[INFO] [stdout] 2981 | / ...       doc = " [percent]\n Percentage of the maximum rated output intensity. May exceed +-100% in case of overload.\n Positive value i...
[INFO] [stdout] 2982 | | ...   )]
[INFO] [stdout] 2983 | | ...   ///
[INFO] [stdout] 2984 | | ...   /// `saturated int8`
[INFO] [stdout] 2985 | | ...   ///
[INFO] [stdout] 2986 | | ...   /// Always aligned,
[INFO] [stdout] 2987 | | ...   /// size 8 bits
[INFO] [stdout]      | |_____________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [percent]
[INFO] [stdout]                ^^^^^^^
[INFO] [stdout]      = note: no item named `percent` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `Ts`
[INFO] [stdout]     --> src/generated.rs:3557:25
[INFO] [stdout]      |
[INFO] [stdout] 3557 | /                         /// `reg.udral.service.actuator.servo._.0.1`
[INFO] [stdout] 3558 | |                         ///
[INFO] [stdout] 3559 | |                         /// Fixed size 0 bytes
[INFO] [stdout] 3560 | |                         ///
[INFO] [stdout] 3561 | |                         #[cfg_attr(
[INFO] [stdout] 3562 | |                             not(doctest),
[INFO] [stdout] 3563 | |                             doc = " A servo can actuate either a translational or rotary load using electric power from the high-voltage DC bus.\n\n The type of load (translational or rotational) dictates which type is used for commanding the setpoint and reporting\n the status:\n   - reg.udral.physics.dynamics.rotation.Planar[Ts]\n   - reg.udral.physics.dynamics.translation.Linear[Ts]\n For generality, either or both of these types are referred to as \"timestamped dynamics\" or \"non-timestamped dynamics\".\n\n The default readiness state is STANDBY. While in this state, the servo is not allowed to apply force to the load,\n and the setpoint subject is ignored. The servo shall enter the STANDBY state automatically if the readiness subject\n is not updated for CONTROL_TIMEOUT.\n\n The subjects defined by this service are shown on the following canvas. Implementers are encouraged to add\n custom subjects with additional data. Notice that the physics subjects are timestamped.\n\n                  SUBJECT NAME                         SUBJECT TYPE                                    RATE\n\n   +------------+ setpoint             +------------+  (non-timestamped dynamics) (see below)          R\n   |            |--------------------->|            |\n   |            | readiness            |            |  reg.udral.service.common.Readiness              any\n   |            |--------------------->|            |\n   |            | feedback             |            |  reg.udral.service.actuator.common.Feedback      R\n   |            |<---------------------|            |\n   | Controller | status               |   Servo    |  reg.udral.service.actuator.common.Status        any\n   |            |<---------------------|            |\n   |            | power                |            |  reg.udral.physics.electricity.PowerTs           R\n   |            |<---------------------|            |\n   |            | dynamics             |            |  (timestamped dynamics)                          R\n   |            |<---------------------|            |\n   +------------+                      +------------+\n\n Should it be necessary to control a group of servos in lockstep, an arbitrary number of them may subscribe\n to the same setpoint subject (their published subjects would be different of course).\n\n If the servo is ENGAGED, setpoint messages are processed as follows: the first field of the kinematic setpoint type\n that contains a finite value is taken as the commanded setpoint. The following non-negative finite fields define\n the motion profile, where negative and non-finite values are ignored.\n\n For example, a translational dynamics message containing the following values:\n   position     = +0.35\n   velocity     = NaN\n   acceleration = NaN\n   force        = 30\n ...is interpreted as follows: position the load at 0.35 meters relative to the neutral, limit the force to 30 newton,\n do not limit the velocity and acceleration. Here is another example:\n   angular position     = NaN\n   angular velocity     = +400\n   angular acceleration = NaN\n   torque               = 50\n which is interpreted as follows: reach the angular velocity of 400 radian/second in the forward direction,\n limit the torque to 50 newton*meters, do not limit the acceleration.\n\n The motion profile parameters that are not supported are to be silently ignored by the servo. If the commanded\n parameter cannot be controlled by the servo, the setpoint is to be ignored. For example, in the second example above,\n if the servo does not support angular velocity control, the setpoint message would be discarded.\n\n The above describes the typical use case where each servo is controlled over a dedicated setpoint\n subject independently (or a group of servos are controlled in lockstep using the same setpoint subject).\n Some applications may require synchronous independent control of multiple servos in a group, similar to ESC.\n To address this, a compliant servo should support another operating mode where the controlled quantity\n (position, velocity, force, etc.) is selected statically along with the motion profile (using the register API),\n and the servo subscribes to the setpoint subject of type \"reg.udral.service.actuator.common.sp.*\".\n Having its index in the group configured statically, the servo fetches the setpoint from the appropriate\n index in the setpoint array.\n The resulting topology closely resembles that of the ESC service:\n\n                                                   SUBJECT NAME            SUBJECT TYPE\n  +----------------+\n  |   Controller   |---------+------------+----... setpoint                reg.udral.service.actuator.common.sp.*\n  |                |-------+-)----------+-)----... readiness               reg.udral.service.common.Readiness\n  +----------------+       | |          | |\n   ^ ^ ^ ^  ^ ^ ^ ^        v v          v v\n   | | | |  | | | |   +---------+  +---------+\n   | | | |  | | | |   |Servo i=0|  |Servo i=1| ...\n   | | | |  | | | |   +---------+  +---------+\n   | | | |  | | | |     | | | |      | | | |\n   | | | |  | | | +-----+ | | |      | | | |       feedback                reg.udral.service.actuator.common.Feedback\n   | | | |  | | +---------+ | |      | | | |       status                  reg.udral.service.actuator.common.Status\n   | | | |  | +-------------+ |      | | | |       power                   reg.udral.physics.electricity.PowerTs\n   | | | |  +-----------------+      | | | |       dynamics                (timestamped dynamics)\n   | | | |                           | | | |\n   | | | +---------------------------+ | | |\n   | | +-------------------------------+ | |\n   | +-----------------------------------+ |\n   +---------------------------------------+\n\n If the selected readiness state is SLEEP, the behavior is implementation-defined. Implementations are recommended to\n power off the high-voltage circuitry and all non-essential components (e.g., LED indication, sensors, etc.)\n to minimize the power consumption. The publication rate requirements do not apply if the state is SLEEP.\n\n The worst-case readiness state transition latency is not defined.\n\n The following subjects shall be published immediately after a new setpoint is applied even if the servo is STANDBY:\n\n   SUBJECT NAME        RECOMMENDED PRIORITY\n   ---------------------------------------------\n   feedback            same as the setpoint\n   power               second to the setpoint\n   dynamics            second to the setpoint\n\n If no setpoint is being published, these subjects should continue being updated at least at 1/MAX_PUBLICATION_PERIOD.\n\n If the setpoint publication rate exceeds 50 Hz, implementations are allowed (but not required) to throttle these\n subjects by dropping some of the messages such that the publication rate of each subject does not exceed 50 Hz.\n Implementations operating over Classic CAN are recommended to do this.\n\n The other subjects may be published at an implementation-defined rate and priority,\n which should be consistent across the group.\n\n The measurements carried by the published messages should be low-pass filtered with an adequate cutoff frequency to\n avoid aliasing effects. Implementations should strive to sample all parameters simultaneously.\n\n It is assumed that the servo is powered from a DC electric power supply network. A positive electric current\n represents current flowing from the DC network into the servo (negative represents regeneration).\n\n Excepting edge cases and transients, torque/force and current are generally of the same sign (barring the difference\n introduced by the power dissipated by the servo itself).\n\n                                   +velocity\n                                       ^\n                               braking,| forward,\n                               negative| positive\n                               power   | power\n                            -----------+---------->  +torque/force/current\n                               reverse,| braking,\n                               positive| negative\n                               power   | power\n\n An example implementation is available at https://github.com/OpenCyphal/demos"
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]                 - reg.udral.physics.dynamics.rotation.Planar[Ts]
[INFO] [stdout]                                                              ^^
[INFO] [stdout]      = note: no item named `Ts` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `Hz`
[INFO] [stdout]     --> src/generated.rs:3604:21
[INFO] [stdout]      |
[INFO] [stdout] 3604 | /                     /// `reg.udral.service.battery._.0.1`
[INFO] [stdout] 3605 | |                     ///
[INFO] [stdout] 3606 | |                     /// Fixed size 0 bytes
[INFO] [stdout] 3607 | |                     ///
[INFO] [stdout] 3608 | |                     #[cfg_attr(
[INFO] [stdout] 3609 | |                         not(doctest),
[INFO] [stdout] 3610 | |                         doc = " This is the smart battery monitoring service. A smart battery is required to publish on the following subjects:\n\n   SUBJECT                         TYPE                                            TYP. RATE [Hz]\n   energy_source                   reg.udral.physics.electricity.SourceTs          1...100\n   status                          reg.udral.service.battery.Status                ~1\n   parameters                      reg.udral.service.battery.Parameters            ~0.2\n\n Observe that only the first subject can be used for estimating the endurance of the power source. The other subjects\n are designed for monitoring, diagnostics, and maintenance.\n\n Optionally, the battery service can subscribe to a readiness control subject (see reg.udral.service.common.Readiness),\n which enables the following two optional capabilities:\n\n   - SLEEP mode: when the readiness subject commands the sleep state, the battery management system may enter a\n     low power consumption state, possibly deactivating some of its capabilities.\n\n   - STANDBY mode: the battery management system may implement additional safety protections that may otherwise\n     interfere with the normal operation of the vehicle. For example, the traction battery may limit the maximum\n     load current and the depth of discharge unless the commanded state is ENGAGED. By doing so, the battery can\n     protect itself and the supplied high-voltage DC network from accidental damage while the vehicle is parked.\n     Limiting the output power or discharge of the traction battery might lead to catastrophic consequences in\n     an aerial vehicle, hence such safety checks are to be disabled once the battery is commanded into the ENGAGED\n     state.\n\n If readiness state selection is not supported, the battery may not subscribe to the readiness control subject,\n in which case it should permanently report its state as ENGAGED unless the battery is unfit for use (e.g., due\n to degradation or a failure).\n\n By convention, positive current flows from the DC network into the battery. Therefore, the current is\n negative when the battery powers the system, and positive when it is being charged.\n\n Systems that leverage multiple battery packs simultaneously should be configured to publish the status of each\n pack on a separate subject.\n\n Published quantities should be low-pass filtered to avoid aliasing effects.\n Publishers should strive to sample all parameters atomically.\n\n The reported quantities are focused on the amount of energy that can be reclaimed from the battery. In a\n simplified view, this can be seen as the amount of energy that is \"stored\" in the battery; however, this\n interpretation is not strictly correct because the amount of retrievable energy may be dependent on external\n factors such as the temperature of the battery or the load current. Energy estimation is hard and requires\n accurate modeling of the state of the battery, which may be impossible to do without precise tracking of each\n charging cycle. Despite the complications, this is considered to be a superior approach compared to the commonly\n used alternative where the state estimation is focused on the electric charge, because the latter cannot be used\n directly to predict the endurance of the system.\n\n The methods of energy estimation are implementation-defined."
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]                 SUBJECT                         TYPE                                            TYP. RATE [Hz]
[INFO] [stdout]                                                                                                            ^^
[INFO] [stdout]      = note: no item named `Hz` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `percent`
[INFO] [stdout]     --> src/generated.rs:3883:29
[INFO] [stdout]      |
[INFO] [stdout] 3883 | /                             doc = " [percent]\n The SoH of the battery, or best guess thereof; ranges from 0 (unusable) to 100 (new)."
[INFO] [stdout] 3884 | |                         )]
[INFO] [stdout] 3885 | |                         ///
[INFO] [stdout] 3886 | |                         /// `saturated uint7`
[INFO] [stdout] 3887 | |                         ///
[INFO] [stdout] 3888 | |                         /// Always aligned,
[INFO] [stdout] 3889 | |                         /// size 7 bits
[INFO] [stdout]      | |_______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [percent]
[INFO] [stdout]                ^^^^^^^
[INFO] [stdout]      = note: no item named `percent` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `volt`
[INFO] [stdout]     --> src/generated.rs:4088:29
[INFO] [stdout]      |
[INFO] [stdout] 4088 | /                             doc = " [volt]\n The voltages of individual cells in the battery pack."
[INFO] [stdout] 4089 | |                         )]
[INFO] [stdout] 4090 | |                         ///
[INFO] [stdout] 4091 | |                         /// `saturated float16[<=255]`
[INFO] [stdout] 4092 | |                         ///
[INFO] [stdout] 4093 | |                         /// Always aligned,
[INFO] [stdout] 4094 | |                         /// size ranges from 0 to 4080 bits
[INFO] [stdout]      | |___________________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [volt]
[INFO] [stdout]                ^^^^
[INFO] [stdout]      = note: no item named `volt` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:4457:50
[INFO] [stdout]      |
[INFO] [stdout] 4457 |                         #[cfg_attr(not(doctest), doc = " [second]")]
[INFO] [stdout]      |                                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:6542:25
[INFO] [stdout]      |
[INFO] [stdout] 6542 | ...   doc = " [second]\n Modem nodes are required to keep the NAT table entries alive for at least this amount of time, unless the\n table is overflowed, in which case they are allowed to remove least recently used entries in favor of\n newer ones. Modem nodes are required to be able to accommodate at least 100 entries in the NAT table."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:6696:25
[INFO] [stdout]      |
[INFO] [stdout] 6696 | ...   doc = " [second]\n Modem nodes are required to keep the NAT table entries alive for at least this amount of time, unless the\n table is overflowed, in which case they are allowed to remove least recently used entries in favor of\n newer ones. Modem nodes are required to be able to accommodate at least 100 entries in the NAT table."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:8668:21
[INFO] [stdout]      |
[INFO] [stdout] 8668 | / ...       doc = " [second]\n The uptime seconds counter should never overflow. The counter will reach the upper limit in ~136 years,\n up...
[INFO] [stdout] 8669 | | ...   )]
[INFO] [stdout] 8670 | | ...   ///
[INFO] [stdout] 8671 | | ...   /// `saturated uint32`
[INFO] [stdout] 8672 | | ...   ///
[INFO] [stdout] 8673 | | ...   /// Always aligned,
[INFO] [stdout] 8674 | | ...   /// size 32 bits
[INFO] [stdout]      | |______________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [second]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:8712:21
[INFO] [stdout]      |
[INFO] [stdout] 8712 | ...   doc = " [second]\n The publication period shall not exceed this limit.\n The period should not change while the node is running."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:8717:21
[INFO] [stdout]      |
[INFO] [stdout] 8717 | ...   doc = " [second]\n If the last message from the node was received more than this amount of time ago, it should be considered offline."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `seconds`
[INFO] [stdout]     --> src/generated.rs:9029:25
[INFO] [stdout]      |
[INFO] [stdout] 9029 | ...   doc = " [seconds]\n If the port configuration is not updated in this amount of time, the node should publish this message anyway."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [seconds]
[INFO] [stdout]               ^^^^^^^
[INFO] [stdout]      = note: no item named `seconds` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `seconds`
[INFO] [stdout]     --> src/generated.rs:9114:25
[INFO] [stdout]      |
[INFO] [stdout] 9114 | ...   doc = " [seconds]\n If the port configuration is not updated in this amount of time, the node should publish this message anyway."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [seconds]
[INFO] [stdout]               ^^^^^^^
[INFO] [stdout]      = note: no item named `seconds` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `8192`
[INFO] [stdout]     --> src/generated.rs:9370:25
[INFO] [stdout]      |
[INFO] [stdout] 9370 | /                         doc = " The index represents the identifier value. True -- present/used. False -- absent/unused."
[INFO] [stdout] 9371 | |                     )]
[INFO] [stdout] 9372 | |                     ///
[INFO] [stdout] 9373 | |                     /// saturated bool[8192]
[INFO] [stdout]      | |____________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              saturated bool[8192]
[INFO] [stdout]                             ^^^^
[INFO] [stdout]      = note: no item named `8192` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `8192`
[INFO] [stdout]     --> src/generated.rs:9473:25
[INFO] [stdout]      |
[INFO] [stdout] 9473 | /                         doc = " The index represents the identifier value. True -- present/used. False -- absent/unused."
[INFO] [stdout] 9474 | |                     )]
[INFO] [stdout] 9475 | |                     ///
[INFO] [stdout] 9476 | |                     /// saturated bool[8192]
[INFO] [stdout]      | |____________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              saturated bool[8192]
[INFO] [stdout]                             ^^^^
[INFO] [stdout]      = note: no item named `8192` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:9680:46
[INFO] [stdout]      |
[INFO] [stdout] 9680 |                     #[cfg_attr(not(doctest), doc = " [second]")]
[INFO] [stdout]      |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:9684:25
[INFO] [stdout]      |
[INFO] [stdout] 9684 | ...   doc = " [second]\n Given the minimum election timeout and the cluster size,\n the maximum recommended request interval can be derived as follows:\n\n   max recommended request interval = (min election timeout) / 2 requests / (cluster size - 1)\n\n The equation assumes that the Leader requests one Follower at a time, so that there's at most one pending call\n at any moment. Such behavior is optimal as it creates a uniform bus load, although it is implementation-specific.\n Obviously, the request interval can be lower than that if needed, but higher values are not recommended as they may\n cause Followers to initiate premature elections in case of frame losses or delays.\n\n The timeout value is randomized in the range (MIN, MAX], according to the Raft paper. The randomization granularity\n should be at least one millisecond or higher."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:9825:25
[INFO] [stdout]      |
[INFO] [stdout] 9825 | ...   doc = " [second]\n This message should be broadcasted by the allocator at this interval until all other allocators are discovered."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `1`
[INFO] [stdout]      --> src/generated.rs:11603:13
[INFO] [stdout]       |
[INFO] [stdout] 11603 | /             /// `uavcan.register.Access.1.0`
[INFO] [stdout] 11604 | |             ///
[INFO] [stdout] 11605 | |             /// Size ranges from 2 to 515 bytes
[INFO] [stdout] 11606 | |             ///
[INFO] [stdout] 11607 | |             #[cfg_attr(
[INFO] [stdout] 11608 | |                 not(doctest),
[INFO] [stdout] 11609 | |                 doc = " Registers are strongly-typed named values used to store the configuration parameters of a node.\n This service is used to write and read a register.\n\n\n   READ/WRITE BEHAVIORS\n\n The write operation is performed first, unless skipped by sending an empty value in the request.\n The server may attempt to convert the type of the supplied value to the correct type if there is a type mismatch\n (e.g. uint8 may be converted to uint16); however, servers are not required to perform implicit type conversion,\n and the rules of such conversion are not explicitly specified, so this behavior should not be relied upon.\n\n On the next step the register will be read regardless of the outcome of the write operation. As such, if the write\n operation could not be performed (e.g. due to a type mismatch or any other issue), the register will retain its old\n value. By evaluating the response the caller can determine whether the register was written successfully.\n\n The write-read sequence is not guaranteed to be atomic, meaning that external influences may cause the register to\n change its value between the write and the subsequent read operation. The caller is responsible for handling that\n case properly.\n\n The timestamp provided in the response corresponds to the time when the register was read. The timestamp may\n be empty if the server does not support timestamping or its clock is not (yet) synchronized with the network.\n\n If only read is desired, but not write, the caller shall provide a value of type 'empty'. That will signal the server\n that the write operation shall be skipped, and it will proceed to read the register immediately.\n\n If the requested register does not exist, the write operation will have no effect and the returned value will be\n empty. Existing registers should not return 'empty' when read since that would make them indistinguishable from\n nonexistent registers.\n\n\n   REGISTER DEFINITION REQUIREMENTS\n\n Registers shall never change their type or flags as long as the server is running. Meaning that:\n   - Mutability and persistence flags cannot change their states.\n   - Read operations shall always return values of the same type and same dimensionality.\n     The dimensionality requirement does not apply to inherently variable-length values such as strings and\n     unstructured chunks.\n\n Register name should contain only:\n   - Lowercase ASCII alphanumeric characters (a-z, 0-9)\n   - Full stop (.)\n   - Low line (underscore) (_)\n With the following limitations/recommendations:\n   - The name shall not begin with a decimal digit (0-9).\n   - The name shall neither begin nor end with a full stop.\n   - A low line shall not be followed by a non-alphanumeric character.\n   - The name should contain at least one full stop character.\n Other patterns and ASCII characters are reserved for special function registers (introduced below).\n\n\n   ENVIRONMENT VARIABLES\n\n This section applies only to software nodes executed in a high-level operating system that supports environment\n variables or an equivalent mechanism.\n\n When a software node is launched, it is usually necessary to provide some of its configuration information early,\n particularly that which is related to Cyphal networking, before the node is started. Environment variables offer\n a convenient way of addressing this. Software nodes that support the register interface should evaluate the\n available environment variables during initialization and update their registers (whether they are stored in\n a persistent storage or in memory) accoringly. This should be completed before the first register read access.\n\n A register name is mapped to an environment variable name as follows:\n   - the name is upper-cased;\n   - full stop characters are replaced with double low line characters.\n For example: 'motor.inductance_dq' is mapped to 'MOTOR__INDUCTANCE_DQ'.\n\n Register values are represented in environment variables as follows:\n   - string:                         utf-8 or platform-specific\n   - unstructured:                   as-is\n   - bit, integer*, natural*, real*: space-separated decimals\n\n If an environment variable matches the name of an existing register but its value cannot be converted to the\n register's type, an error should be raised.\n\n If an environment variable does not match the name of any register, it may be ignored. However, if the implementation\n can reliably deduce the type and purpose of the register, it may create one automatically. This provision is to\n support applications where the register schema may be altered by configuration.\n\n\n   SPECIAL FUNCTION REGISTERS\n\n The following optional special function register names are defined:\n   - suffix '<' is used to define an immutable persistent value that contains the maximum value\n     of the respective register.\n   - suffix '>' is like above, used to define the minimum value of the respective register.\n   - suffix '=' is like above, used to define the default value of the respective register.\n   - prefix '*' is reserved for raw memory access (to be defined later).\n Examples:\n   - register name \"system.parameter\"\n   - maximum value is contained in the register named \"system.parameter<\" (optional)\n   - minimum value is contained in the register named \"system.parameter>\" (optional)\n   - default value is contained in the register named \"system.parameter=\" (optional)\n\n The type and dimensionality of the special function registers containing the minimum, maximum, and the default\n value of a register shall be the same as those of the register they relate to.\n\n If a written value exceeds the minimum/maximum specified by the respective special function registers,\n the server may either adjust the value automatically, or to retain the old value, depending on which behavior\n suits the objectives of the application better.\n The values of registers containing non-scalar numerical entities should be compared elementwise.\n\n\n   STANDARD REGISTERS\n\n The following table specifies the register name patterns that are reserved by the specification for\n common functions. These conventions are not mandatory to follow, but implementers are recommended to adhere because\n they enable enhanced introspection capabilities and simplify device configuration and diagnostics.\n\n   REGISTER NAME PATTERN                               TYPE            FLAGS                   RECOMMENDED DEFAULT\n =====================================================================================================================\n\n   uavcan.node.id                                      natural16[1]    mutable, persistent     65535 (unset/PnP)\n\n Contains the node-ID of the local node. Values above the maximum valid node-ID for the current transport\n indicate that the node-ID is not set; if plug-and-play is supported, it will be used by the node to obtain an\n automatic node-ID. Invalid values other than 65535 should be avoided for consistency.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.node.description                             string          mutable, persistent     (empty)\n\n User/integrator-defined, human-readable description of this specific node.\n This is intended for use by a system integrator and should not be set by the manufacturer of a component.\n For example: on a quad-rotor drone this might read \"motor 2\" for one of the ESC nodes.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.pub.PORT_NAME.id                             natural16[1]    mutable, persistent     65535 (unset, invalid)\n   uavcan.sub.PORT_NAME.id                             ditto           ditto                   ditto\n   uavcan.cln.PORT_NAME.id                             ditto           ditto                   ditto\n   uavcan.srv.PORT_NAME.id                             ditto           ditto                   ditto\n\n Publication/subscription/client/server port-ID, respectively. These registers are configured by the system integrator\n or an autoconfiguration authority when the node is first connected to a network.\n\n The \"PORT_NAME\" defines the human-friendly name of the port, which is related to the corresponding function\n or a network service supported by the node. The name shall match the following POSIX ERE expression:\n\n   [a-zA-Z_][a-zA-Z0-9_.]*\n\n The names are defined by the vendor of the node. The user/integrator is expected to understand their meaning and\n relation to the functional capabilities of the node by reading the technical documentation provided by the vendor.\n\n A port whose port-ID register is unset (invalid value) remains inactive (unused); the corresponding function may\n be disabled. For example, a register named \"uavcan.pub.measurement.id\" defines the subject-ID of a measurement\n published by this node; if the register contains an invalid value (above the maximum valid subject-ID),\n said measurement is not published.\n\n The same name is used in other similar registers defined below. Network introspection and autoconfiguration tools\n will expect to find a register of this form for every configurable port supported by the node.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.pub.PORT_NAME.type                           string          immutable, persistent   N/A\n   uavcan.sub.PORT_NAME.type                           ditto           ditto                   ditto\n   uavcan.cln.PORT_NAME.type                           ditto           ditto                   ditto\n   uavcan.srv.PORT_NAME.type                           ditto           ditto                   ditto\n\n Publication/subscription/client/server full data type name and dot-separated version numbers, respectively.\n These registers are set by the vendor once and typically they are to remain unchanged (hence \"immutable\").\n The \"PORT_NAME\" defines the human-friendly name of the port as specified above.\n For example, a register named \"uavcan.pub.measurement.type\" may contain \"uavcan.si.sample.angle.Quaternion.1.0\".\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.diagnostic.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.can.bitrate                                  natural32[2]    implementation-defined  implementation-defined\n   uavcan.can.iface                                    string          mutable, persistent     implementation-defined\n\n These registers are only relevant for nodes that support Cyphal/CAN.\n\n uavcan.can.bitrate defines the CAN bus bit rate: the first value is the arbitration bit rate, the second is the\n data phase bit rate. Nodes that support only Classic CAN should ignore the second value. Nodes that support CAN FD\n should initialize in the Classic CAN mode (MTU 8 bytes, BRS flag not set) if the values are equal. If CAN bitrate\n is not configurable or is always auto-detected, this register may be omitted or made immutable; otherwise it should\n be mutable and persistent.\n\n uavcan.can.iface is only relevant for software nodes or nodes that are capable of using different CAN interfaces.\n The value is a space-separated list of CAN interface names to use. The name format is implementation-defined\n (for example, \"can0\").\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.udp.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------#\n\n   uavcan.serial.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------"
[INFO] [stdout]       | |_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
[INFO] [stdout]       |
[INFO] [stdout]       = note: the link appears in this line:
[INFO] [stdout]               
[INFO] [stdout]                  uavcan.node.id                                      natural16[1]    mutable, persistent     65535 (unset/PnP)
[INFO] [stdout]                                                                                ^
[INFO] [stdout]       = note: no item named `1` in scope
[INFO] [stdout]       = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `2`
[INFO] [stdout]      --> src/generated.rs:11603:13
[INFO] [stdout]       |
[INFO] [stdout] 11603 | /             /// `uavcan.register.Access.1.0`
[INFO] [stdout] 11604 | |             ///
[INFO] [stdout] 11605 | |             /// Size ranges from 2 to 515 bytes
[INFO] [stdout] 11606 | |             ///
[INFO] [stdout] 11607 | |             #[cfg_attr(
[INFO] [stdout] 11608 | |                 not(doctest),
[INFO] [stdout] 11609 | |                 doc = " Registers are strongly-typed named values used to store the configuration parameters of a node.\n This service is used to write and read a register.\n\n\n   READ/WRITE BEHAVIORS\n\n The write operation is performed first, unless skipped by sending an empty value in the request.\n The server may attempt to convert the type of the supplied value to the correct type if there is a type mismatch\n (e.g. uint8 may be converted to uint16); however, servers are not required to perform implicit type conversion,\n and the rules of such conversion are not explicitly specified, so this behavior should not be relied upon.\n\n On the next step the register will be read regardless of the outcome of the write operation. As such, if the write\n operation could not be performed (e.g. due to a type mismatch or any other issue), the register will retain its old\n value. By evaluating the response the caller can determine whether the register was written successfully.\n\n The write-read sequence is not guaranteed to be atomic, meaning that external influences may cause the register to\n change its value between the write and the subsequent read operation. The caller is responsible for handling that\n case properly.\n\n The timestamp provided in the response corresponds to the time when the register was read. The timestamp may\n be empty if the server does not support timestamping or its clock is not (yet) synchronized with the network.\n\n If only read is desired, but not write, the caller shall provide a value of type 'empty'. That will signal the server\n that the write operation shall be skipped, and it will proceed to read the register immediately.\n\n If the requested register does not exist, the write operation will have no effect and the returned value will be\n empty. Existing registers should not return 'empty' when read since that would make them indistinguishable from\n nonexistent registers.\n\n\n   REGISTER DEFINITION REQUIREMENTS\n\n Registers shall never change their type or flags as long as the server is running. Meaning that:\n   - Mutability and persistence flags cannot change their states.\n   - Read operations shall always return values of the same type and same dimensionality.\n     The dimensionality requirement does not apply to inherently variable-length values such as strings and\n     unstructured chunks.\n\n Register name should contain only:\n   - Lowercase ASCII alphanumeric characters (a-z, 0-9)\n   - Full stop (.)\n   - Low line (underscore) (_)\n With the following limitations/recommendations:\n   - The name shall not begin with a decimal digit (0-9).\n   - The name shall neither begin nor end with a full stop.\n   - A low line shall not be followed by a non-alphanumeric character.\n   - The name should contain at least one full stop character.\n Other patterns and ASCII characters are reserved for special function registers (introduced below).\n\n\n   ENVIRONMENT VARIABLES\n\n This section applies only to software nodes executed in a high-level operating system that supports environment\n variables or an equivalent mechanism.\n\n When a software node is launched, it is usually necessary to provide some of its configuration information early,\n particularly that which is related to Cyphal networking, before the node is started. Environment variables offer\n a convenient way of addressing this. Software nodes that support the register interface should evaluate the\n available environment variables during initialization and update their registers (whether they are stored in\n a persistent storage or in memory) accoringly. This should be completed before the first register read access.\n\n A register name is mapped to an environment variable name as follows:\n   - the name is upper-cased;\n   - full stop characters are replaced with double low line characters.\n For example: 'motor.inductance_dq' is mapped to 'MOTOR__INDUCTANCE_DQ'.\n\n Register values are represented in environment variables as follows:\n   - string:                         utf-8 or platform-specific\n   - unstructured:                   as-is\n   - bit, integer*, natural*, real*: space-separated decimals\n\n If an environment variable matches the name of an existing register but its value cannot be converted to the\n register's type, an error should be raised.\n\n If an environment variable does not match the name of any register, it may be ignored. However, if the implementation\n can reliably deduce the type and purpose of the register, it may create one automatically. This provision is to\n support applications where the register schema may be altered by configuration.\n\n\n   SPECIAL FUNCTION REGISTERS\n\n The following optional special function register names are defined:\n   - suffix '<' is used to define an immutable persistent value that contains the maximum value\n     of the respective register.\n   - suffix '>' is like above, used to define the minimum value of the respective register.\n   - suffix '=' is like above, used to define the default value of the respective register.\n   - prefix '*' is reserved for raw memory access (to be defined later).\n Examples:\n   - register name \"system.parameter\"\n   - maximum value is contained in the register named \"system.parameter<\" (optional)\n   - minimum value is contained in the register named \"system.parameter>\" (optional)\n   - default value is contained in the register named \"system.parameter=\" (optional)\n\n The type and dimensionality of the special function registers containing the minimum, maximum, and the default\n value of a register shall be the same as those of the register they relate to.\n\n If a written value exceeds the minimum/maximum specified by the respective special function registers,\n the server may either adjust the value automatically, or to retain the old value, depending on which behavior\n suits the objectives of the application better.\n The values of registers containing non-scalar numerical entities should be compared elementwise.\n\n\n   STANDARD REGISTERS\n\n The following table specifies the register name patterns that are reserved by the specification for\n common functions. These conventions are not mandatory to follow, but implementers are recommended to adhere because\n they enable enhanced introspection capabilities and simplify device configuration and diagnostics.\n\n   REGISTER NAME PATTERN                               TYPE            FLAGS                   RECOMMENDED DEFAULT\n =====================================================================================================================\n\n   uavcan.node.id                                      natural16[1]    mutable, persistent     65535 (unset/PnP)\n\n Contains the node-ID of the local node. Values above the maximum valid node-ID for the current transport\n indicate that the node-ID is not set; if plug-and-play is supported, it will be used by the node to obtain an\n automatic node-ID. Invalid values other than 65535 should be avoided for consistency.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.node.description                             string          mutable, persistent     (empty)\n\n User/integrator-defined, human-readable description of this specific node.\n This is intended for use by a system integrator and should not be set by the manufacturer of a component.\n For example: on a quad-rotor drone this might read \"motor 2\" for one of the ESC nodes.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.pub.PORT_NAME.id                             natural16[1]    mutable, persistent     65535 (unset, invalid)\n   uavcan.sub.PORT_NAME.id                             ditto           ditto                   ditto\n   uavcan.cln.PORT_NAME.id                             ditto           ditto                   ditto\n   uavcan.srv.PORT_NAME.id                             ditto           ditto                   ditto\n\n Publication/subscription/client/server port-ID, respectively. These registers are configured by the system integrator\n or an autoconfiguration authority when the node is first connected to a network.\n\n The \"PORT_NAME\" defines the human-friendly name of the port, which is related to the corresponding function\n or a network service supported by the node. The name shall match the following POSIX ERE expression:\n\n   [a-zA-Z_][a-zA-Z0-9_.]*\n\n The names are defined by the vendor of the node. The user/integrator is expected to understand their meaning and\n relation to the functional capabilities of the node by reading the technical documentation provided by the vendor.\n\n A port whose port-ID register is unset (invalid value) remains inactive (unused); the corresponding function may\n be disabled. For example, a register named \"uavcan.pub.measurement.id\" defines the subject-ID of a measurement\n published by this node; if the register contains an invalid value (above the maximum valid subject-ID),\n said measurement is not published.\n\n The same name is used in other similar registers defined below. Network introspection and autoconfiguration tools\n will expect to find a register of this form for every configurable port supported by the node.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.pub.PORT_NAME.type                           string          immutable, persistent   N/A\n   uavcan.sub.PORT_NAME.type                           ditto           ditto                   ditto\n   uavcan.cln.PORT_NAME.type                           ditto           ditto                   ditto\n   uavcan.srv.PORT_NAME.type                           ditto           ditto                   ditto\n\n Publication/subscription/client/server full data type name and dot-separated version numbers, respectively.\n These registers are set by the vendor once and typically they are to remain unchanged (hence \"immutable\").\n The \"PORT_NAME\" defines the human-friendly name of the port as specified above.\n For example, a register named \"uavcan.pub.measurement.type\" may contain \"uavcan.si.sample.angle.Quaternion.1.0\".\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.diagnostic.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.can.bitrate                                  natural32[2]    implementation-defined  implementation-defined\n   uavcan.can.iface                                    string          mutable, persistent     implementation-defined\n\n These registers are only relevant for nodes that support Cyphal/CAN.\n\n uavcan.can.bitrate defines the CAN bus bit rate: the first value is the arbitration bit rate, the second is the\n data phase bit rate. Nodes that support only Classic CAN should ignore the second value. Nodes that support CAN FD\n should initialize in the Classic CAN mode (MTU 8 bytes, BRS flag not set) if the values are equal. If CAN bitrate\n is not configurable or is always auto-detected, this register may be omitted or made immutable; otherwise it should\n be mutable and persistent.\n\n uavcan.can.iface is only relevant for software nodes or nodes that are capable of using different CAN interfaces.\n The value is a space-separated list of CAN interface names to use. The name format is implementation-defined\n (for example, \"can0\").\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.udp.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------#\n\n   uavcan.serial.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------"
[INFO] [stdout]       | |_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
[INFO] [stdout]       |
[INFO] [stdout]       = note: the link appears in this line:
[INFO] [stdout]               
[INFO] [stdout]                  uavcan.can.bitrate                                  natural32[2]    implementation-defined  implementation-defined
[INFO] [stdout]                                                                                ^
[INFO] [stdout]       = note: no item named `2` in scope
[INFO] [stdout]       = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]      --> src/generated.rs:16014:21
[INFO] [stdout]       |
[INFO] [stdout] 16014 |                     doc = " [second]\n Publication period limits.\n A master should not change its publication period while running."
[INFO] [stdout]       |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: the link appears in this line:
[INFO] [stdout]               
[INFO] [stdout]               [second]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]       = note: no item named `second` in scope
[INFO] [stdout]       = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]      --> src/generated.rs:16124:21
[INFO] [stdout]       |
[INFO] [stdout] 16124 | ...   doc = " [second]\n The fixed difference, in seconds, between TAI and GPS time. Does not change ever.\n Systems that use GPS time as a reference should convert that to TAI by adding this difference."
[INFO] [stdout]       |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: the link appears in this line:
[INFO] [stdout]               
[INFO] [stdout]               [second]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]       = note: no item named `second` in scope
[INFO] [stdout]       = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:2436:21
[INFO] [stdout]      |
[INFO] [stdout] 2436 | /                     /// `reg.udral.physics.optics.HighColor.0.1`
[INFO] [stdout] 2437 | |                     ///
[INFO] [stdout] 2438 | |                     /// Fixed size 2 bytes
[INFO] [stdout] 2439 | |                     ///
[INFO] [stdout] 2440 | |                     #[cfg_attr(
[INFO] [stdout] 2441 | |                         not(doctest),
[INFO] [stdout] 2442 | |                         doc = " Color in the standard 16-bit 5-6-5 RGB format (green is wider due to non-uniform color sensitivity of the human eye).\n https://en.wikipedia.org/wiki/High_color\n\n For reasons of unification, a monochrome light can be modeled using the same type,\n where the brightness is defined as the mean of the color components normalized to one:\n\n   brightness = (red/MAX_RED + green/MAX_GREEN + blue/MAX_BLUE) / 3"
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/High_color>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout]      = note: `#[warn(rustdoc::bare_urls)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:2581:21
[INFO] [stdout]      |
[INFO] [stdout] 2581 | /                     /// `reg.udral.physics.time.TAI64.0.1`
[INFO] [stdout] 2582 | |                     ///
[INFO] [stdout] 2583 | |                     /// Fixed size 8 bytes
[INFO] [stdout] 2584 | |                     ///
[INFO] [stdout] 2585 | |                     #[cfg_attr(
[INFO] [stdout] 2586 | |                         not(doctest),
[INFO] [stdout] 2587 | |                         doc = " Standard TAI64N time label (https://cr.yp.to/libtai/tai64.html). Quote from the source:\n\n   TAI stands for Temps Atomique International, the current international real-time standard.\n   One TAI second is defined as the duration of 9192631770 periods of the radiation corresponding\n   to the transition between the two hyperfine levels of the ground state of the cesium atom.\n   TAI also specifies a frame of reference. Further discussion of special relativity is outside\n   the scope of this document.\n\n   A TAI64 label is an integer between 0 and 2^64 referring to a particular second of real time. Integer s refers to:\n\n       - the TAI second beginning exactly 2^62 - s seconds before the beginning of 1970 TAI,\n         if s is between 0 inclusive and 2^62 exclusive; or\n\n       - the TAI second beginning exactly s - 2^62 seconds after the beginning of 1970 TAI,\n         if s is between 2^62 inclusive and 2^63 exclusive.\n"
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://cr.yp.to/libtai/tai64.html>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:2799:25
[INFO] [stdout]      |
[INFO] [stdout] 2799 | /                         /// `reg.udral.service.actuator.common.FaultFlags.0.1`
[INFO] [stdout] 2800 | |                         ///
[INFO] [stdout] 2801 | |                         /// Fixed size 2 bytes
[INFO] [stdout] 2802 | |                         ///
[INFO] [stdout] 2803 | |                         #[cfg_attr(
[INFO] [stdout] 2804 | |                             not(doctest),
[INFO] [stdout] 2805 | |                             doc = " A collection of detailed fault flags indicating problems detected by the service provider.\n A fault flag is set when the corresponding parameter exceeds its safe operating area (SOA) as defined by the vendor;\n see https://en.wikipedia.org/wiki/Safe_operating_area.\n As long as at least one flag is set, the service health should not be NOMINAL."
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Safe_operating_area.>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:3024:29
[INFO] [stdout]      |
[INFO] [stdout] 3024 | /                             /// `reg.udral.service.actuator.common.sp._.0.1`
[INFO] [stdout] 3025 | |                             ///
[INFO] [stdout] 3026 | |                             /// Fixed size 0 bytes
[INFO] [stdout] 3027 | |                             ///
[INFO] [stdout] 3028 | |                             #[cfg_attr(
[INFO] [stdout] 3029 | |                                 not(doctest),
[INFO] [stdout] 3030 | |                                 doc = " This is a collection of weakly-typed primitives used to control groups of actuators synchronously.\n\n Actuators are expected to subscribe using the largest array type. Publishers would choose the array type\n depending on the number of actuators in the group. The actuators would be expecting the largest array type,\n where the missing elements will be zero-filled automatically by the protocol stack thanks to the\n Implicit Zero Extension Rule (refer to the Cyphal Specification for details).\n\n The physical meaning of the values contained in the array is defined by the respective actuator service specification.\n If ratiometric control is used, then the range should be [-1, +1].\n\n It follows that a standalone actuator (that is not a member of any group) is just a special case of a group of 1,\n where the setpoint type is a single scalar.\n\n The Cyphal Specification might benefit from supporting flexible array fields to avoid having to deal with redundant\n similar types: https://en.wikipedia.org/wiki/Flexible_array_member, so that instead of having multiple types that\n differ only in size of the array fields, one could just say `float16[0] value` such that the size of zero indicates\n that the array is a flex array."
[INFO] [stdout]      | |_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Flexible_array_member>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:3043:37
[INFO] [stdout]      |
[INFO] [stdout] 3043 | ...                   doc = " The float epsilon defined for convenience.\n See https://en.wikipedia.org/wiki/Machine_epsilon."
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Machine_epsilon.>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:3557:25
[INFO] [stdout]      |
[INFO] [stdout] 3557 | /                         /// `reg.udral.service.actuator.servo._.0.1`
[INFO] [stdout] 3558 | |                         ///
[INFO] [stdout] 3559 | |                         /// Fixed size 0 bytes
[INFO] [stdout] 3560 | |                         ///
[INFO] [stdout] 3561 | |                         #[cfg_attr(
[INFO] [stdout] 3562 | |                             not(doctest),
[INFO] [stdout] 3563 | |                             doc = " A servo can actuate either a translational or rotary load using electric power from the high-voltage DC bus.\n\n The type of load (translational or rotational) dictates which type is used for commanding the setpoint and reporting\n the status:\n   - reg.udral.physics.dynamics.rotation.Planar[Ts]\n   - reg.udral.physics.dynamics.translation.Linear[Ts]\n For generality, either or both of these types are referred to as \"timestamped dynamics\" or \"non-timestamped dynamics\".\n\n The default readiness state is STANDBY. While in this state, the servo is not allowed to apply force to the load,\n and the setpoint subject is ignored. The servo shall enter the STANDBY state automatically if the readiness subject\n is not updated for CONTROL_TIMEOUT.\n\n The subjects defined by this service are shown on the following canvas. Implementers are encouraged to add\n custom subjects with additional data. Notice that the physics subjects are timestamped.\n\n                  SUBJECT NAME                         SUBJECT TYPE                                    RATE\n\n   +------------+ setpoint             +------------+  (non-timestamped dynamics) (see below)          R\n   |            |--------------------->|            |\n   |            | readiness            |            |  reg.udral.service.common.Readiness              any\n   |            |--------------------->|            |\n   |            | feedback             |            |  reg.udral.service.actuator.common.Feedback      R\n   |            |<---------------------|            |\n   | Controller | status               |   Servo    |  reg.udral.service.actuator.common.Status        any\n   |            |<---------------------|            |\n   |            | power                |            |  reg.udral.physics.electricity.PowerTs           R\n   |            |<---------------------|            |\n   |            | dynamics             |            |  (timestamped dynamics)                          R\n   |            |<---------------------|            |\n   +------------+                      +------------+\n\n Should it be necessary to control a group of servos in lockstep, an arbitrary number of them may subscribe\n to the same setpoint subject (their published subjects would be different of course).\n\n If the servo is ENGAGED, setpoint messages are processed as follows: the first field of the kinematic setpoint type\n that contains a finite value is taken as the commanded setpoint. The following non-negative finite fields define\n the motion profile, where negative and non-finite values are ignored.\n\n For example, a translational dynamics message containing the following values:\n   position     = +0.35\n   velocity     = NaN\n   acceleration = NaN\n   force        = 30\n ...is interpreted as follows: position the load at 0.35 meters relative to the neutral, limit the force to 30 newton,\n do not limit the velocity and acceleration. Here is another example:\n   angular position     = NaN\n   angular velocity     = +400\n   angular acceleration = NaN\n   torque               = 50\n which is interpreted as follows: reach the angular velocity of 400 radian/second in the forward direction,\n limit the torque to 50 newton*meters, do not limit the acceleration.\n\n The motion profile parameters that are not supported are to be silently ignored by the servo. If the commanded\n parameter cannot be controlled by the servo, the setpoint is to be ignored. For example, in the second example above,\n if the servo does not support angular velocity control, the setpoint message would be discarded.\n\n The above describes the typical use case where each servo is controlled over a dedicated setpoint\n subject independently (or a group of servos are controlled in lockstep using the same setpoint subject).\n Some applications may require synchronous independent control of multiple servos in a group, similar to ESC.\n To address this, a compliant servo should support another operating mode where the controlled quantity\n (position, velocity, force, etc.) is selected statically along with the motion profile (using the register API),\n and the servo subscribes to the setpoint subject of type \"reg.udral.service.actuator.common.sp.*\".\n Having its index in the group configured statically, the servo fetches the setpoint from the appropriate\n index in the setpoint array.\n The resulting topology closely resembles that of the ESC service:\n\n                                                   SUBJECT NAME            SUBJECT TYPE\n  +----------------+\n  |   Controller   |---------+------------+----... setpoint                reg.udral.service.actuator.common.sp.*\n  |                |-------+-)----------+-)----... readiness               reg.udral.service.common.Readiness\n  +----------------+       | |          | |\n   ^ ^ ^ ^  ^ ^ ^ ^        v v          v v\n   | | | |  | | | |   +---------+  +---------+\n   | | | |  | | | |   |Servo i=0|  |Servo i=1| ...\n   | | | |  | | | |   +---------+  +---------+\n   | | | |  | | | |     | | | |      | | | |\n   | | | |  | | | +-----+ | | |      | | | |       feedback                reg.udral.service.actuator.common.Feedback\n   | | | |  | | +---------+ | |      | | | |       status                  reg.udral.service.actuator.common.Status\n   | | | |  | +-------------+ |      | | | |       power                   reg.udral.physics.electricity.PowerTs\n   | | | |  +-----------------+      | | | |       dynamics                (timestamped dynamics)\n   | | | |                           | | | |\n   | | | +---------------------------+ | | |\n   | | +-------------------------------+ | |\n   | +-----------------------------------+ |\n   +---------------------------------------+\n\n If the selected readiness state is SLEEP, the behavior is implementation-defined. Implementations are recommended to\n power off the high-voltage circuitry and all non-essential components (e.g., LED indication, sensors, etc.)\n to minimize the power consumption. The publication rate requirements do not apply if the state is SLEEP.\n\n The worst-case readiness state transition latency is not defined.\n\n The following subjects shall be published immediately after a new setpoint is applied even if the servo is STANDBY:\n\n   SUBJECT NAME        RECOMMENDED PRIORITY\n   ---------------------------------------------\n   feedback            same as the setpoint\n   power               second to the setpoint\n   dynamics            second to the setpoint\n\n If no setpoint is being published, these subjects should continue being updated at least at 1/MAX_PUBLICATION_PERIOD.\n\n If the setpoint publication rate exceeds 50 Hz, implementations are allowed (but not required) to throttle these\n subjects by dropping some of the messages such that the publication rate of each subject does not exceed 50 Hz.\n Implementations operating over Classic CAN are recommended to do this.\n\n The other subjects may be published at an implementation-defined rate and priority,\n which should be consistent across the group.\n\n The measurements carried by the published messages should be low-pass filtered with an adequate cutoff frequency to\n avoid aliasing effects. Implementations should strive to sample all parameters simultaneously.\n\n It is assumed that the servo is powered from a DC electric power supply network. A positive electric current\n represents current flowing from the DC network into the servo (negative represents regeneration).\n\n Excepting edge cases and transients, torque/force and current are generally of the same sign (barring the difference\n introduced by the power dissipated by the servo itself).\n\n                                   +velocity\n                                       ^\n                               braking,| forward,\n                               negative| positive\n                               power   | power\n                            -----------+---------->  +torque/force/current\n                               reverse,| braking,\n                               positive| negative\n                               power   | power\n\n An example implementation is available at https://github.com/OpenCyphal/demos"
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://github.com/OpenCyphal/demos>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:3645:21
[INFO] [stdout]      |
[INFO] [stdout] 3645 | /                     /// `reg.udral.service.battery.Error.0.1`
[INFO] [stdout] 3646 | |                     ///
[INFO] [stdout] 3647 | |                     /// Fixed size 1 bytes
[INFO] [stdout] 3648 | |                     ///
[INFO] [stdout] 3649 | |                     #[cfg_attr(
[INFO] [stdout] 3650 | |                         not(doctest),
[INFO] [stdout] 3651 | |                         doc = " Generic error codes reported by the service provider.\n An error is reported when the corresponding parameter exceeds its safe operating area (SOA) as defined by the vendor;\n see https://en.wikipedia.org/wiki/Safe_operating_area.\n As long as an error condition is present, the service health should not be NOMINAL.\n\n If there are multiple error conditions present, the most severe one should be reported. The severity ordering\n is implementation-defined. Barring special requirements, it is recommended to give preference to errors whose\n code is smaller (e.g., BAD_BATTERY trumps TEMPERATURE_COLD)."
[INFO] [stdout]      | |______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Safe_operating_area.>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:4050:29
[INFO] [stdout]      |
[INFO] [stdout] 4050 | / ...       doc = " Note that the health code generally should not reflect the battery charge unless the service provider knows\n that the ...
[INFO] [stdout] 4051 | | ...   )]
[INFO] [stdout] 4052 | | ...   ///
[INFO] [stdout] 4053 | | ...   /// `reg.udral.service.common.Heartbeat.0.1`
[INFO] [stdout] 4054 | | ...   ///
[INFO] [stdout] 4055 | | ...   /// Always aligned,
[INFO] [stdout] 4056 | | ...   /// size 16 bits
[INFO] [stdout]      | |______________________^ help: use an automatic link instead: `<https://opencyphal.org/guide.>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:8588:13
[INFO] [stdout]      |
[INFO] [stdout] 8588 | /             /// `uavcan.node.Health.1.0`
[INFO] [stdout] 8589 | |             ///
[INFO] [stdout] 8590 | |             /// Fixed size 1 bytes
[INFO] [stdout] 8591 | |             ///
[INFO] [stdout] 8592 | |             #[cfg_attr(
[INFO] [stdout] 8593 | |                 not(doctest),
[INFO] [stdout] 8594 | |                 doc = " Abstract component health information. If the node performs multiple activities (provides multiple network services),\n its health status should reflect the status of the worst-performing activity (network service).\n Follows:\n   https://www.law.cornell.edu/cfr/text/14/23.1322\n   https://www.faa.gov/documentLibrary/media/Advisory_Circular/AC_25.1322-1.pdf section 6"
[INFO] [stdout]      | |__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://www.law.cornell.edu/cfr/text/14/23.1322>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:8588:13
[INFO] [stdout]      |
[INFO] [stdout] 8588 | /             /// `uavcan.node.Health.1.0`
[INFO] [stdout] 8589 | |             ///
[INFO] [stdout] 8590 | |             /// Fixed size 1 bytes
[INFO] [stdout] 8591 | |             ///
[INFO] [stdout] 8592 | |             #[cfg_attr(
[INFO] [stdout] 8593 | |                 not(doctest),
[INFO] [stdout] 8594 | |                 doc = " Abstract component health information. If the node performs multiple activities (provides multiple network services),\n its health status should reflect the status of the worst-performing activity (network service).\n Follows:\n   https://www.law.cornell.edu/cfr/text/14/23.1322\n   https://www.faa.gov/documentLibrary/media/Advisory_Circular/AC_25.1322-1.pdf section 6"
[INFO] [stdout]      | |__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://www.faa.gov/documentLibrary/media/Advisory_Circular/AC_25.1322-1.pdf>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:15986:13
[INFO] [stdout]       |
[INFO] [stdout] 15986 | /             /// `uavcan.time.Synchronization.1.0`
[INFO] [stdout] 15987 | |             ///
[INFO] [stdout] 15988 | |             /// Fixed size 7 bytes
[INFO] [stdout] 15989 | |             ///
[INFO] [stdout] 15990 | |             #[cfg_attr(
[INFO] [stdout] 15991 | |                 not(doctest),
[INFO] [stdout] 15992 | |                 doc = " Network-wide time synchronization message.\n Any node that publishes timestamped data should use this time reference.\n\n The time synchronization algorithm is based on the work\n \"Implementing a Distributed High-Resolution Real-Time Clock using the CAN-Bus\" by M. Gergeleit and H. Streich.\n The general idea of the algorithm is to have one or more nodes that periodically publish a message of this type\n containing the exact timestamp of the PREVIOUS transmission of this message.\n A node that publishes this message periodically is referred to as a \"time synchronization master\",\n whereas nodes that synchronize their clocks with the master are referred to as \"time synchronization slaves\".\n\n Once a time base is chosen, it cannot be changed as long as at least one node on the network is running.\n In other words, the time base cannot be changed while the network is operating.\n An implication of this is that if there are redundant time synchronization masters, they all shall\n use the same time base.\n\n The resolution is dependent on the transport and its physical layer, but generally it can be assumed\n to be close to one bit time but not better than one microsecond (e.g., for a 500 kbps CAN bus,\n the resolution is two microseconds). The maximum accuracy is achievable only if the transport layer\n supports precise timestamping in hardware; otherwise, the accuracy may be degraded.\n\n This algorithm allows the slaves to precisely estimate the difference (i.e., phase error) between their\n local time and the master clock they are synchronized with. The algorithm for clock rate adjustment\n is entirely implementation-defined (for example, a simple phase-locked loop or a PID rate controller can be used).\n\n The network can accommodate more than one time synchronization master for purposes of increased reliability:\n if one master fails, the others will continue to provide the network with accurate and consistent time information.\n The risk of undesirable transients while the masters are swapped is mitigated by the requirement that all masters\n use the same time base at all times, as described above.\n\n The master with the lowest node-ID is called the \"dominant master\". The current dominant master ceases to be one\n if its last synchronization message was published more than 3X seconds ago, where X is the time interval\n between the last and the previous messages published by it. In this case, the master with the next-higher node-ID\n will take over as the new dominant master. The current dominant master will be displaced immediately as soon as\n the first message from a new master with a lower node-ID is seen on the bus.\n\n In the presence of multiple masters, they all publish their time synchronization messages concurrently at all times.\n The slaves shall listen to the master with the lowest node-ID and ignore the messages published by masters with\n higher node-ID values.\n\n Currently, there is a work underway to develop and validate a highly robust fault-operational time synchronization\n algorithm where the slaves select the median time base among all available masters rather than using only the\n one with the lowest node-ID value. Follow the work at https://forum.opencyphal.org. When complete, this algorithm\n will be added in a backward-compatible way as an option for high-reliability systems.\n\n For networks with redundant transports, the timestamp value published on different interfaces is likely to be\n different, since different transports are generally not expected to be synchronized. Synchronization slaves\n are allowed to use any of the available redundant interfaces for synchronization at their discretion.\n\n The following pseudocode shows the logic of a time synchronization master. This example assumes that the master\n does not need to synchronize its own clock with other masters on the bus, which is the case if the current master\n is the only master, or if all masters synchronize their clocks with a robust external source, e.g., a GNSS system.\n If several masters need to synchronize their clock through the bus, their logic will be extended with the\n slave-side behavior explained later.\n\n       // State variables\n       transfer_id := 0;\n       previous_tx_timestamp_per_iface[NUM_IFACES] := {0};\n\n       // This function publishes a message with a specified transfer-ID using only one transport interface.\n       function publishMessage(transfer_id, iface_index, msg);\n\n       // This callback is invoked when the transport layer completes the transmission of a time sync message.\n       // Observe that the time sync message is always a single-frame message by virtue of its small size.\n       // The tx_timestamp argument contains the exact timestamp when the transport frame was delivered to the bus.\n       function messageTxTimestampCallback(iface_index, tx_timestamp)\n       {\n           previous_tx_timestamp_per_iface[iface_index] := tx_timestamp;\n       }\n\n       // Publishes messages of type uavcan.time.Synchronization to each available transport interface.\n       // It is assumed that this function is invoked with a fixed frequency not lower than 1 hertz.\n       function publishTimeSync()\n       {\n           for (i := 0; i < NUM_IFACES; i++)\n           {\n               message := uavcan.time.Synchronization();\n               message.previous_transmission_timestamp_usec := previous_tx_timestamp_per_iface[i];\n               previous_tx_timestamp_per_iface[i] := 0;\n               publishMessage(transfer_id, i, message);\n           }\n           transfer_id++; // Overflow shall be handled correctly\n       }\n\n (end of the master-side logic pseudocode)\n The following pseudocode describes the logic of a time synchronization slave.\n\n       // State variables:\n       previous_rx_real_timestamp := 0;            // This clock is being synchronized\n       previous_rx_monotonic_timestamp := 0;       // Monotonic time -- doesn't leap or change rate\n       previous_transfer_id := 0;\n       state := STATE_UPDATE;                      // Variants: STATE_UPDATE, STATE_ADJUST\n       master_node_id := -1;                       // Invalid value\n       iface_index := -1;                          // Invalid value\n\n       // This function adjusts the local clock by the specified amount\n       function adjustLocalTime(phase_error);\n\n       function adjust(message)\n       {\n           // Clock adjustment will be performed every second message\n           local_time_phase_error := previous_rx_real_timestamp - msg.previous_transmission_timestamp_microsecond;\n           adjustLocalTime(local_time_phase_error);\n           state := STATE_UPDATE;\n       }\n\n       function update(message)\n       {\n           // A message is assumed to have two timestamps:\n           //   Real      - sampled from the clock that is being synchronized\n           //   Monotonic - clock that never leaps and never changes rate\n           previous_rx_real_timestamp := message.rx_real_timestamp;\n           previous_rx_monotonic_timestamp := message.rx_monotonic_timestamp;\n           master_node_id := message.source_node_id;\n           iface_index := message.iface_index;\n           previous_transfer_id := message.transfer_id;\n           state := STATE_ADJUST;\n       }\n\n       // Accepts the message of type uavcan.time.Synchronization\n       function handleReceivedTimeSyncMessage(message)\n       {\n           time_since_previous_msg := message.monotonic_timestamp - previous_rx_monotonic_timestamp;\n\n           needs_init := (master_node_id < 0) or (iface_index < 0);\n           switch_master := message.source_node_id < master_node_id;\n\n           // The value publisher_timeout is computed as described in the specification (3x interval)\n           publisher_timed_out := time_since_previous_msg > publisher_timeout;\n\n           if (needs_init or switch_master or publisher_timed_out)\n           {\n               update(message);\n           }\n           else if ((message.iface_index == iface_index) and (message.source_node_id == master_node_id))\n           {\n               // Revert the state to STATE_UPDATE if needed\n               if (state == STATE_ADJUST)\n               {\n                   msg_invalid := message.previous_transmission_timestamp_microsecond == 0;\n                   // Overflow shall be handled correctly\n                   wrong_tid := message.transfer_id != (previous_transfer_id + 1);\n                   wrong_timing := time_since_previous_msg > MAX_PUBLICATION_PERIOD;\n                   if (msg_invalid or wrong_tid or wrong_timing)\n                   {\n                       state := STATE_UPDATE;\n                   }\n               }\n               // Handle the current state\n               if (state == STATE_ADJUST)\n               {\n                   adjust(message);\n               }\n               else\n               {\n                   update(message);\n               }\n           }   // else ignore\n       }\n\n (end of the slave-side logic pseudocode)"
[INFO] [stdout]       | |____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://forum.opencyphal.org.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:16096:13
[INFO] [stdout]       |
[INFO] [stdout] 16096 | /             /// `uavcan.time.TAIInfo.0.1`
[INFO] [stdout] 16097 | |             ///
[INFO] [stdout] 16098 | |             /// Fixed size 2 bytes
[INFO] [stdout] 16099 | |             ///
[INFO] [stdout] 16100 | |             #[cfg_attr(
[INFO] [stdout] 16101 | |                 not(doctest),
[INFO] [stdout] 16102 | |                 doc = " This data types defines constants and runtime values pertaining to the International Atomic Time, also known as TAI.\n See https://en.wikipedia.org/wiki/International_Atomic_Time.\n\n The relationship between the three major time systems -- TAI, GPS, and UTC -- is as follows:\n\n   TAI = GPS + 19 seconds\n   TAI = UTC + LS + 10 seconds\n\n Where \"LS\" is the current number of leap seconds: https://en.wikipedia.org/wiki/Leap_second.\n\n Cyphal applications should only rely on TAI whenever a global time system is needed.\n GPS time is strongly discouraged for reasons of consistency across different positioning systems and applications."
[INFO] [stdout]       | |___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/International_Atomic_Time.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:16096:13
[INFO] [stdout]       |
[INFO] [stdout] 16096 | /             /// `uavcan.time.TAIInfo.0.1`
[INFO] [stdout] 16097 | |             ///
[INFO] [stdout] 16098 | |             /// Fixed size 2 bytes
[INFO] [stdout] 16099 | |             ///
[INFO] [stdout] 16100 | |             #[cfg_attr(
[INFO] [stdout] 16101 | |                 not(doctest),
[INFO] [stdout] 16102 | |                 doc = " This data types defines constants and runtime values pertaining to the International Atomic Time, also known as TAI.\n See https://en.wikipedia.org/wiki/International_Atomic_Time.\n\n The relationship between the three major time systems -- TAI, GPS, and UTC -- is as follows:\n\n   TAI = GPS + 19 seconds\n   TAI = UTC + LS + 10 seconds\n\n Where \"LS\" is the current number of leap seconds: https://en.wikipedia.org/wiki/Leap_second.\n\n Cyphal applications should only rely on TAI whenever a global time system is needed.\n GPS time is strongly discouraged for reasons of consistency across different positioning systems and applications."
[INFO] [stdout]       | |___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Leap_second.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:16107:21
[INFO] [stdout]       |
[INFO] [stdout] 16107 | / ...       doc = " The current difference between TAI and UTC, if known. If unknown, set to zero.\n\n This value may change states between...
[INFO] [stdout] 16108 | | ...   )]
[INFO] [stdout] 16109 | | ...   ///
[INFO] [stdout] 16110 | | ...   /// `saturated uint10`
[INFO] [stdout] 16111 | | ...   ///
[INFO] [stdout] 16112 | | ...   /// Always aligned,
[INFO] [stdout] 16113 | | ...   /// size 10 bits
[INFO] [stdout]       | |______________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Leap_second.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:16180:21
[INFO] [stdout]       |
[INFO] [stdout] 16180 | ...   doc = " International Atomic Time; https://en.wikipedia.org/wiki/International_Atomic_Time.\n The timestamp value contains the number of microseconds elapsed since 1970-01-01T00:00:00Z TAI.\n TAI is always a fixed integer number of seconds ahead of GPS time.\n Systems that use GPS time as a reference should convert that to TAI by adding the fixed difference.\n GPS time is not supported for reasons of consistency across different positioning systems and applications."
[INFO] [stdout]       |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/International_Atomic_Time.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 44 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 7.41s
[INFO] running `Command { std: "docker" "inspect" "4a93738a80aeb72242aac6ccb8dc1cad291dba4d935495f3a7cdfc056566ee22", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a93738a80aeb72242aac6ccb8dc1cad291dba4d935495f3a7cdfc056566ee22", kill_on_drop: false }`
[INFO] [stdout] 4a93738a80aeb72242aac6ccb8dc1cad291dba4d935495f3a7cdfc056566ee22
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "RUSTC_BOOTSTRAP=1" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "rustdoc" "--lib" "-Zrustdoc-map" "-Z" "unstable-options" "--config" "build.rustdocflags=[\"-Z\", \"unstable-options\", \"--document-private-items\"]" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f7b6b3918a519d32e82e346787c4e700677e2943e6fd55be26233ff2992c7d6a
[INFO] running `Command { std: "docker" "start" "-a" "f7b6b3918a519d32e82e346787c4e700677e2943e6fd55be26233ff2992c7d6a", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Documenting canadensis_data_types v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: lint `unaligned_references` has been removed: converted into hard error, see issue #82523 <https://github.com/rust-lang/rust/issues/82523> for more information
[INFO] [stdout]  --> src/generated.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[deny(unaligned_references)]
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `unaligned_references` has been removed: converted into hard error, see issue #82523 <https://github.com/rust-lang/rust/issues/82523> for more information
[INFO] [stdout]     --> src/generated.rs:4492:8
[INFO] [stdout]      |
[INFO] [stdout] 4492 | #[deny(unaligned_references)]
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `radian`
[INFO] [stdout]     --> src/generated.rs:1344:54
[INFO] [stdout]      |
[INFO] [stdout] 1344 |   ...                   #[cfg_attr(not(doctest), doc = " [radian]")]
[INFO] [stdout]      |  ________________________________________________^
[INFO] [stdout] 1345 | | ...                   ///
[INFO] [stdout] 1346 | | ...                   /// `saturated float64`
[INFO] [stdout] 1347 | | ...                   ///
[INFO] [stdout] 1348 | | ...                   /// Always aligned,
[INFO] [stdout] 1349 | | ...                   /// size 64 bits
[INFO] [stdout]      | |______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [radian]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]      = note: no item named `radian` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout]      = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `radian`
[INFO] [stdout]     --> src/generated.rs:1351:54
[INFO] [stdout]      |
[INFO] [stdout] 1351 |   ...                   #[cfg_attr(not(doctest), doc = " [radian]")]
[INFO] [stdout]      |  ________________________________________________^
[INFO] [stdout] 1352 | | ...                   ///
[INFO] [stdout] 1353 | | ...                   /// `saturated float64`
[INFO] [stdout] 1354 | | ...                   ///
[INFO] [stdout] 1355 | | ...                   /// Always aligned,
[INFO] [stdout] 1356 | | ...                   /// size 64 bits
[INFO] [stdout]      | |______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [radian]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]      = note: no item named `radian` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `nanosecond`
[INFO] [stdout]     --> src/generated.rs:2594:29
[INFO] [stdout]      |
[INFO] [stdout] 2594 | /                             doc = " [nanosecond] Nanoseconds elapsed since 1970-01-01T00:00:00Z TAI."
[INFO] [stdout] 2595 | |                         )]
[INFO] [stdout] 2596 | |                         ///
[INFO] [stdout] 2597 | |                         /// `saturated int64`
[INFO] [stdout] 2598 | |                         ///
[INFO] [stdout] 2599 | |                         /// Always aligned,
[INFO] [stdout] 2600 | |                         /// size 64 bits
[INFO] [stdout]      | |________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [nanosecond] Nanoseconds elapsed since 1970-01-01T00:00:00Z TAI.
[INFO] [stdout]                ^^^^^^^^^^
[INFO] [stdout]      = note: no item named `nanosecond` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `seconds`
[INFO] [stdout]     --> src/generated.rs:2763:33
[INFO] [stdout]      |
[INFO] [stdout] 2763 | ...   doc = " [seconds]\n The actuator is allowed to enter a safe state (e.g., stop the controlled mechanism, disconnect itself from\n the load, etc. depending on the specifics of the application at hand) if no setpoint or readiness control messages\n have been received in this amount of time. Implementations are allowed to reduce this value, but never increase it."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [seconds]
[INFO] [stdout]               ^^^^^^^
[INFO] [stdout]      = note: no item named `seconds` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:2768:33
[INFO] [stdout]      |
[INFO] [stdout] 2768 | ...   doc = " [second]\n This is the maximum publication period (minimum frequency) for all subjects described in this service.\n Subjects that are clocked by the setpoint should continue being published at least at this rate when setpoint is not\n being updated, unless the actuator is in the SLEEP state.\n The publication periods should be consistent across the group."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `percent`
[INFO] [stdout]     --> src/generated.rs:2981:33
[INFO] [stdout]      |
[INFO] [stdout] 2981 | / ...       doc = " [percent]\n Percentage of the maximum rated output intensity. May exceed +-100% in case of overload.\n Positive value i...
[INFO] [stdout] 2982 | | ...   )]
[INFO] [stdout] 2983 | | ...   ///
[INFO] [stdout] 2984 | | ...   /// `saturated int8`
[INFO] [stdout] 2985 | | ...   ///
[INFO] [stdout] 2986 | | ...   /// Always aligned,
[INFO] [stdout] 2987 | | ...   /// size 8 bits
[INFO] [stdout]      | |_____________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [percent]
[INFO] [stdout]                ^^^^^^^
[INFO] [stdout]      = note: no item named `percent` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `Ts`
[INFO] [stdout]     --> src/generated.rs:3557:25
[INFO] [stdout]      |
[INFO] [stdout] 3557 | /                         /// `reg.udral.service.actuator.servo._.0.1`
[INFO] [stdout] 3558 | |                         ///
[INFO] [stdout] 3559 | |                         /// Fixed size 0 bytes
[INFO] [stdout] 3560 | |                         ///
[INFO] [stdout] 3561 | |                         #[cfg_attr(
[INFO] [stdout] 3562 | |                             not(doctest),
[INFO] [stdout] 3563 | |                             doc = " A servo can actuate either a translational or rotary load using electric power from the high-voltage DC bus.\n\n The type of load (translational or rotational) dictates which type is used for commanding the setpoint and reporting\n the status:\n   - reg.udral.physics.dynamics.rotation.Planar[Ts]\n   - reg.udral.physics.dynamics.translation.Linear[Ts]\n For generality, either or both of these types are referred to as \"timestamped dynamics\" or \"non-timestamped dynamics\".\n\n The default readiness state is STANDBY. While in this state, the servo is not allowed to apply force to the load,\n and the setpoint subject is ignored. The servo shall enter the STANDBY state automatically if the readiness subject\n is not updated for CONTROL_TIMEOUT.\n\n The subjects defined by this service are shown on the following canvas. Implementers are encouraged to add\n custom subjects with additional data. Notice that the physics subjects are timestamped.\n\n                  SUBJECT NAME                         SUBJECT TYPE                                    RATE\n\n   +------------+ setpoint             +------------+  (non-timestamped dynamics) (see below)          R\n   |            |--------------------->|            |\n   |            | readiness            |            |  reg.udral.service.common.Readiness              any\n   |            |--------------------->|            |\n   |            | feedback             |            |  reg.udral.service.actuator.common.Feedback      R\n   |            |<---------------------|            |\n   | Controller | status               |   Servo    |  reg.udral.service.actuator.common.Status        any\n   |            |<---------------------|            |\n   |            | power                |            |  reg.udral.physics.electricity.PowerTs           R\n   |            |<---------------------|            |\n   |            | dynamics             |            |  (timestamped dynamics)                          R\n   |            |<---------------------|            |\n   +------------+                      +------------+\n\n Should it be necessary to control a group of servos in lockstep, an arbitrary number of them may subscribe\n to the same setpoint subject (their published subjects would be different of course).\n\n If the servo is ENGAGED, setpoint messages are processed as follows: the first field of the kinematic setpoint type\n that contains a finite value is taken as the commanded setpoint. The following non-negative finite fields define\n the motion profile, where negative and non-finite values are ignored.\n\n For example, a translational dynamics message containing the following values:\n   position     = +0.35\n   velocity     = NaN\n   acceleration = NaN\n   force        = 30\n ...is interpreted as follows: position the load at 0.35 meters relative to the neutral, limit the force to 30 newton,\n do not limit the velocity and acceleration. Here is another example:\n   angular position     = NaN\n   angular velocity     = +400\n   angular acceleration = NaN\n   torque               = 50\n which is interpreted as follows: reach the angular velocity of 400 radian/second in the forward direction,\n limit the torque to 50 newton*meters, do not limit the acceleration.\n\n The motion profile parameters that are not supported are to be silently ignored by the servo. If the commanded\n parameter cannot be controlled by the servo, the setpoint is to be ignored. For example, in the second example above,\n if the servo does not support angular velocity control, the setpoint message would be discarded.\n\n The above describes the typical use case where each servo is controlled over a dedicated setpoint\n subject independently (or a group of servos are controlled in lockstep using the same setpoint subject).\n Some applications may require synchronous independent control of multiple servos in a group, similar to ESC.\n To address this, a compliant servo should support another operating mode where the controlled quantity\n (position, velocity, force, etc.) is selected statically along with the motion profile (using the register API),\n and the servo subscribes to the setpoint subject of type \"reg.udral.service.actuator.common.sp.*\".\n Having its index in the group configured statically, the servo fetches the setpoint from the appropriate\n index in the setpoint array.\n The resulting topology closely resembles that of the ESC service:\n\n                                                   SUBJECT NAME            SUBJECT TYPE\n  +----------------+\n  |   Controller   |---------+------------+----... setpoint                reg.udral.service.actuator.common.sp.*\n  |                |-------+-)----------+-)----... readiness               reg.udral.service.common.Readiness\n  +----------------+       | |          | |\n   ^ ^ ^ ^  ^ ^ ^ ^        v v          v v\n   | | | |  | | | |   +---------+  +---------+\n   | | | |  | | | |   |Servo i=0|  |Servo i=1| ...\n   | | | |  | | | |   +---------+  +---------+\n   | | | |  | | | |     | | | |      | | | |\n   | | | |  | | | +-----+ | | |      | | | |       feedback                reg.udral.service.actuator.common.Feedback\n   | | | |  | | +---------+ | |      | | | |       status                  reg.udral.service.actuator.common.Status\n   | | | |  | +-------------+ |      | | | |       power                   reg.udral.physics.electricity.PowerTs\n   | | | |  +-----------------+      | | | |       dynamics                (timestamped dynamics)\n   | | | |                           | | | |\n   | | | +---------------------------+ | | |\n   | | +-------------------------------+ | |\n   | +-----------------------------------+ |\n   +---------------------------------------+\n\n If the selected readiness state is SLEEP, the behavior is implementation-defined. Implementations are recommended to\n power off the high-voltage circuitry and all non-essential components (e.g., LED indication, sensors, etc.)\n to minimize the power consumption. The publication rate requirements do not apply if the state is SLEEP.\n\n The worst-case readiness state transition latency is not defined.\n\n The following subjects shall be published immediately after a new setpoint is applied even if the servo is STANDBY:\n\n   SUBJECT NAME        RECOMMENDED PRIORITY\n   ---------------------------------------------\n   feedback            same as the setpoint\n   power               second to the setpoint\n   dynamics            second to the setpoint\n\n If no setpoint is being published, these subjects should continue being updated at least at 1/MAX_PUBLICATION_PERIOD.\n\n If the setpoint publication rate exceeds 50 Hz, implementations are allowed (but not required) to throttle these\n subjects by dropping some of the messages such that the publication rate of each subject does not exceed 50 Hz.\n Implementations operating over Classic CAN are recommended to do this.\n\n The other subjects may be published at an implementation-defined rate and priority,\n which should be consistent across the group.\n\n The measurements carried by the published messages should be low-pass filtered with an adequate cutoff frequency to\n avoid aliasing effects. Implementations should strive to sample all parameters simultaneously.\n\n It is assumed that the servo is powered from a DC electric power supply network. A positive electric current\n represents current flowing from the DC network into the servo (negative represents regeneration).\n\n Excepting edge cases and transients, torque/force and current are generally of the same sign (barring the difference\n introduced by the power dissipated by the servo itself).\n\n                                   +velocity\n                                       ^\n                               braking,| forward,\n                               negative| positive\n                               power   | power\n                            -----------+---------->  +torque/force/current\n                               reverse,| braking,\n                               positive| negative\n                               power   | power\n\n An example implementation is available at https://github.com/OpenCyphal/demos"
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]                 - reg.udral.physics.dynamics.rotation.Planar[Ts]
[INFO] [stdout]                                                              ^^
[INFO] [stdout]      = note: no item named `Ts` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `Hz`
[INFO] [stdout]     --> src/generated.rs:3604:21
[INFO] [stdout]      |
[INFO] [stdout] 3604 | /                     /// `reg.udral.service.battery._.0.1`
[INFO] [stdout] 3605 | |                     ///
[INFO] [stdout] 3606 | |                     /// Fixed size 0 bytes
[INFO] [stdout] 3607 | |                     ///
[INFO] [stdout] 3608 | |                     #[cfg_attr(
[INFO] [stdout] 3609 | |                         not(doctest),
[INFO] [stdout] 3610 | |                         doc = " This is the smart battery monitoring service. A smart battery is required to publish on the following subjects:\n\n   SUBJECT                         TYPE                                            TYP. RATE [Hz]\n   energy_source                   reg.udral.physics.electricity.SourceTs          1...100\n   status                          reg.udral.service.battery.Status                ~1\n   parameters                      reg.udral.service.battery.Parameters            ~0.2\n\n Observe that only the first subject can be used for estimating the endurance of the power source. The other subjects\n are designed for monitoring, diagnostics, and maintenance.\n\n Optionally, the battery service can subscribe to a readiness control subject (see reg.udral.service.common.Readiness),\n which enables the following two optional capabilities:\n\n   - SLEEP mode: when the readiness subject commands the sleep state, the battery management system may enter a\n     low power consumption state, possibly deactivating some of its capabilities.\n\n   - STANDBY mode: the battery management system may implement additional safety protections that may otherwise\n     interfere with the normal operation of the vehicle. For example, the traction battery may limit the maximum\n     load current and the depth of discharge unless the commanded state is ENGAGED. By doing so, the battery can\n     protect itself and the supplied high-voltage DC network from accidental damage while the vehicle is parked.\n     Limiting the output power or discharge of the traction battery might lead to catastrophic consequences in\n     an aerial vehicle, hence such safety checks are to be disabled once the battery is commanded into the ENGAGED\n     state.\n\n If readiness state selection is not supported, the battery may not subscribe to the readiness control subject,\n in which case it should permanently report its state as ENGAGED unless the battery is unfit for use (e.g., due\n to degradation or a failure).\n\n By convention, positive current flows from the DC network into the battery. Therefore, the current is\n negative when the battery powers the system, and positive when it is being charged.\n\n Systems that leverage multiple battery packs simultaneously should be configured to publish the status of each\n pack on a separate subject.\n\n Published quantities should be low-pass filtered to avoid aliasing effects.\n Publishers should strive to sample all parameters atomically.\n\n The reported quantities are focused on the amount of energy that can be reclaimed from the battery. In a\n simplified view, this can be seen as the amount of energy that is \"stored\" in the battery; however, this\n interpretation is not strictly correct because the amount of retrievable energy may be dependent on external\n factors such as the temperature of the battery or the load current. Energy estimation is hard and requires\n accurate modeling of the state of the battery, which may be impossible to do without precise tracking of each\n charging cycle. Despite the complications, this is considered to be a superior approach compared to the commonly\n used alternative where the state estimation is focused on the electric charge, because the latter cannot be used\n directly to predict the endurance of the system.\n\n The methods of energy estimation are implementation-defined."
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]                 SUBJECT                         TYPE                                            TYP. RATE [Hz]
[INFO] [stdout]                                                                                                            ^^
[INFO] [stdout]      = note: no item named `Hz` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `percent`
[INFO] [stdout]     --> src/generated.rs:3883:29
[INFO] [stdout]      |
[INFO] [stdout] 3883 | /                             doc = " [percent]\n The SoH of the battery, or best guess thereof; ranges from 0 (unusable) to 100 (new)."
[INFO] [stdout] 3884 | |                         )]
[INFO] [stdout] 3885 | |                         ///
[INFO] [stdout] 3886 | |                         /// `saturated uint7`
[INFO] [stdout] 3887 | |                         ///
[INFO] [stdout] 3888 | |                         /// Always aligned,
[INFO] [stdout] 3889 | |                         /// size 7 bits
[INFO] [stdout]      | |_______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [percent]
[INFO] [stdout]                ^^^^^^^
[INFO] [stdout]      = note: no item named `percent` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `volt`
[INFO] [stdout]     --> src/generated.rs:4088:29
[INFO] [stdout]      |
[INFO] [stdout] 4088 | /                             doc = " [volt]\n The voltages of individual cells in the battery pack."
[INFO] [stdout] 4089 | |                         )]
[INFO] [stdout] 4090 | |                         ///
[INFO] [stdout] 4091 | |                         /// `saturated float16[<=255]`
[INFO] [stdout] 4092 | |                         ///
[INFO] [stdout] 4093 | |                         /// Always aligned,
[INFO] [stdout] 4094 | |                         /// size ranges from 0 to 4080 bits
[INFO] [stdout]      | |___________________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [volt]
[INFO] [stdout]                ^^^^
[INFO] [stdout]      = note: no item named `volt` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:4457:50
[INFO] [stdout]      |
[INFO] [stdout] 4457 |                         #[cfg_attr(not(doctest), doc = " [second]")]
[INFO] [stdout]      |                                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:6542:25
[INFO] [stdout]      |
[INFO] [stdout] 6542 | ...   doc = " [second]\n Modem nodes are required to keep the NAT table entries alive for at least this amount of time, unless the\n table is overflowed, in which case they are allowed to remove least recently used entries in favor of\n newer ones. Modem nodes are required to be able to accommodate at least 100 entries in the NAT table."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:6696:25
[INFO] [stdout]      |
[INFO] [stdout] 6696 | ...   doc = " [second]\n Modem nodes are required to keep the NAT table entries alive for at least this amount of time, unless the\n table is overflowed, in which case they are allowed to remove least recently used entries in favor of\n newer ones. Modem nodes are required to be able to accommodate at least 100 entries in the NAT table."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:8668:21
[INFO] [stdout]      |
[INFO] [stdout] 8668 | / ...       doc = " [second]\n The uptime seconds counter should never overflow. The counter will reach the upper limit in ~136 years,\n up...
[INFO] [stdout] 8669 | | ...   )]
[INFO] [stdout] 8670 | | ...   ///
[INFO] [stdout] 8671 | | ...   /// `saturated uint32`
[INFO] [stdout] 8672 | | ...   ///
[INFO] [stdout] 8673 | | ...   /// Always aligned,
[INFO] [stdout] 8674 | | ...   /// size 32 bits
[INFO] [stdout]      | |______________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]               [second]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:8712:21
[INFO] [stdout]      |
[INFO] [stdout] 8712 | ...   doc = " [second]\n The publication period shall not exceed this limit.\n The period should not change while the node is running."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:8717:21
[INFO] [stdout]      |
[INFO] [stdout] 8717 | ...   doc = " [second]\n If the last message from the node was received more than this amount of time ago, it should be considered offline."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `seconds`
[INFO] [stdout]     --> src/generated.rs:9029:25
[INFO] [stdout]      |
[INFO] [stdout] 9029 | ...   doc = " [seconds]\n If the port configuration is not updated in this amount of time, the node should publish this message anyway."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [seconds]
[INFO] [stdout]               ^^^^^^^
[INFO] [stdout]      = note: no item named `seconds` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `seconds`
[INFO] [stdout]     --> src/generated.rs:9114:25
[INFO] [stdout]      |
[INFO] [stdout] 9114 | ...   doc = " [seconds]\n If the port configuration is not updated in this amount of time, the node should publish this message anyway."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [seconds]
[INFO] [stdout]               ^^^^^^^
[INFO] [stdout]      = note: no item named `seconds` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `8192`
[INFO] [stdout]     --> src/generated.rs:9370:25
[INFO] [stdout]      |
[INFO] [stdout] 9370 | /                         doc = " The index represents the identifier value. True -- present/used. False -- absent/unused."
[INFO] [stdout] 9371 | |                     )]
[INFO] [stdout] 9372 | |                     ///
[INFO] [stdout] 9373 | |                     /// saturated bool[8192]
[INFO] [stdout]      | |____________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              saturated bool[8192]
[INFO] [stdout]                             ^^^^
[INFO] [stdout]      = note: no item named `8192` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `8192`
[INFO] [stdout]     --> src/generated.rs:9473:25
[INFO] [stdout]      |
[INFO] [stdout] 9473 | /                         doc = " The index represents the identifier value. True -- present/used. False -- absent/unused."
[INFO] [stdout] 9474 | |                     )]
[INFO] [stdout] 9475 | |                     ///
[INFO] [stdout] 9476 | |                     /// saturated bool[8192]
[INFO] [stdout]      | |____________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              saturated bool[8192]
[INFO] [stdout]                             ^^^^
[INFO] [stdout]      = note: no item named `8192` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:9680:46
[INFO] [stdout]      |
[INFO] [stdout] 9680 |                     #[cfg_attr(not(doctest), doc = " [second]")]
[INFO] [stdout]      |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:9684:25
[INFO] [stdout]      |
[INFO] [stdout] 9684 | ...   doc = " [second]\n Given the minimum election timeout and the cluster size,\n the maximum recommended request interval can be derived as follows:\n\n   max recommended request interval = (min election timeout) / 2 requests / (cluster size - 1)\n\n The equation assumes that the Leader requests one Follower at a time, so that there's at most one pending call\n at any moment. Such behavior is optimal as it creates a uniform bus load, although it is implementation-specific.\n Obviously, the request interval can be lower than that if needed, but higher values are not recommended as they may\n cause Followers to initiate premature elections in case of frame losses or delays.\n\n The timeout value is randomized in the range (MIN, MAX], according to the Raft paper. The randomization granularity\n should be at least one millisecond or higher."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]     --> src/generated.rs:9825:25
[INFO] [stdout]      |
[INFO] [stdout] 9825 | ...   doc = " [second]\n This message should be broadcasted by the allocator at this interval until all other allocators are discovered."
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the link appears in this line:
[INFO] [stdout]              
[INFO] [stdout]              [second]
[INFO] [stdout]               ^^^^^^
[INFO] [stdout]      = note: no item named `second` in scope
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `1`
[INFO] [stdout]      --> src/generated.rs:11603:13
[INFO] [stdout]       |
[INFO] [stdout] 11603 | /             /// `uavcan.register.Access.1.0`
[INFO] [stdout] 11604 | |             ///
[INFO] [stdout] 11605 | |             /// Size ranges from 2 to 515 bytes
[INFO] [stdout] 11606 | |             ///
[INFO] [stdout] 11607 | |             #[cfg_attr(
[INFO] [stdout] 11608 | |                 not(doctest),
[INFO] [stdout] 11609 | |                 doc = " Registers are strongly-typed named values used to store the configuration parameters of a node.\n This service is used to write and read a register.\n\n\n   READ/WRITE BEHAVIORS\n\n The write operation is performed first, unless skipped by sending an empty value in the request.\n The server may attempt to convert the type of the supplied value to the correct type if there is a type mismatch\n (e.g. uint8 may be converted to uint16); however, servers are not required to perform implicit type conversion,\n and the rules of such conversion are not explicitly specified, so this behavior should not be relied upon.\n\n On the next step the register will be read regardless of the outcome of the write operation. As such, if the write\n operation could not be performed (e.g. due to a type mismatch or any other issue), the register will retain its old\n value. By evaluating the response the caller can determine whether the register was written successfully.\n\n The write-read sequence is not guaranteed to be atomic, meaning that external influences may cause the register to\n change its value between the write and the subsequent read operation. The caller is responsible for handling that\n case properly.\n\n The timestamp provided in the response corresponds to the time when the register was read. The timestamp may\n be empty if the server does not support timestamping or its clock is not (yet) synchronized with the network.\n\n If only read is desired, but not write, the caller shall provide a value of type 'empty'. That will signal the server\n that the write operation shall be skipped, and it will proceed to read the register immediately.\n\n If the requested register does not exist, the write operation will have no effect and the returned value will be\n empty. Existing registers should not return 'empty' when read since that would make them indistinguishable from\n nonexistent registers.\n\n\n   REGISTER DEFINITION REQUIREMENTS\n\n Registers shall never change their type or flags as long as the server is running. Meaning that:\n   - Mutability and persistence flags cannot change their states.\n   - Read operations shall always return values of the same type and same dimensionality.\n     The dimensionality requirement does not apply to inherently variable-length values such as strings and\n     unstructured chunks.\n\n Register name should contain only:\n   - Lowercase ASCII alphanumeric characters (a-z, 0-9)\n   - Full stop (.)\n   - Low line (underscore) (_)\n With the following limitations/recommendations:\n   - The name shall not begin with a decimal digit (0-9).\n   - The name shall neither begin nor end with a full stop.\n   - A low line shall not be followed by a non-alphanumeric character.\n   - The name should contain at least one full stop character.\n Other patterns and ASCII characters are reserved for special function registers (introduced below).\n\n\n   ENVIRONMENT VARIABLES\n\n This section applies only to software nodes executed in a high-level operating system that supports environment\n variables or an equivalent mechanism.\n\n When a software node is launched, it is usually necessary to provide some of its configuration information early,\n particularly that which is related to Cyphal networking, before the node is started. Environment variables offer\n a convenient way of addressing this. Software nodes that support the register interface should evaluate the\n available environment variables during initialization and update their registers (whether they are stored in\n a persistent storage or in memory) accoringly. This should be completed before the first register read access.\n\n A register name is mapped to an environment variable name as follows:\n   - the name is upper-cased;\n   - full stop characters are replaced with double low line characters.\n For example: 'motor.inductance_dq' is mapped to 'MOTOR__INDUCTANCE_DQ'.\n\n Register values are represented in environment variables as follows:\n   - string:                         utf-8 or platform-specific\n   - unstructured:                   as-is\n   - bit, integer*, natural*, real*: space-separated decimals\n\n If an environment variable matches the name of an existing register but its value cannot be converted to the\n register's type, an error should be raised.\n\n If an environment variable does not match the name of any register, it may be ignored. However, if the implementation\n can reliably deduce the type and purpose of the register, it may create one automatically. This provision is to\n support applications where the register schema may be altered by configuration.\n\n\n   SPECIAL FUNCTION REGISTERS\n\n The following optional special function register names are defined:\n   - suffix '<' is used to define an immutable persistent value that contains the maximum value\n     of the respective register.\n   - suffix '>' is like above, used to define the minimum value of the respective register.\n   - suffix '=' is like above, used to define the default value of the respective register.\n   - prefix '*' is reserved for raw memory access (to be defined later).\n Examples:\n   - register name \"system.parameter\"\n   - maximum value is contained in the register named \"system.parameter<\" (optional)\n   - minimum value is contained in the register named \"system.parameter>\" (optional)\n   - default value is contained in the register named \"system.parameter=\" (optional)\n\n The type and dimensionality of the special function registers containing the minimum, maximum, and the default\n value of a register shall be the same as those of the register they relate to.\n\n If a written value exceeds the minimum/maximum specified by the respective special function registers,\n the server may either adjust the value automatically, or to retain the old value, depending on which behavior\n suits the objectives of the application better.\n The values of registers containing non-scalar numerical entities should be compared elementwise.\n\n\n   STANDARD REGISTERS\n\n The following table specifies the register name patterns that are reserved by the specification for\n common functions. These conventions are not mandatory to follow, but implementers are recommended to adhere because\n they enable enhanced introspection capabilities and simplify device configuration and diagnostics.\n\n   REGISTER NAME PATTERN                               TYPE            FLAGS                   RECOMMENDED DEFAULT\n =====================================================================================================================\n\n   uavcan.node.id                                      natural16[1]    mutable, persistent     65535 (unset/PnP)\n\n Contains the node-ID of the local node. Values above the maximum valid node-ID for the current transport\n indicate that the node-ID is not set; if plug-and-play is supported, it will be used by the node to obtain an\n automatic node-ID. Invalid values other than 65535 should be avoided for consistency.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.node.description                             string          mutable, persistent     (empty)\n\n User/integrator-defined, human-readable description of this specific node.\n This is intended for use by a system integrator and should not be set by the manufacturer of a component.\n For example: on a quad-rotor drone this might read \"motor 2\" for one of the ESC nodes.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.pub.PORT_NAME.id                             natural16[1]    mutable, persistent     65535 (unset, invalid)\n   uavcan.sub.PORT_NAME.id                             ditto           ditto                   ditto\n   uavcan.cln.PORT_NAME.id                             ditto           ditto                   ditto\n   uavcan.srv.PORT_NAME.id                             ditto           ditto                   ditto\n\n Publication/subscription/client/server port-ID, respectively. These registers are configured by the system integrator\n or an autoconfiguration authority when the node is first connected to a network.\n\n The \"PORT_NAME\" defines the human-friendly name of the port, which is related to the corresponding function\n or a network service supported by the node. The name shall match the following POSIX ERE expression:\n\n   [a-zA-Z_][a-zA-Z0-9_.]*\n\n The names are defined by the vendor of the node. The user/integrator is expected to understand their meaning and\n relation to the functional capabilities of the node by reading the technical documentation provided by the vendor.\n\n A port whose port-ID register is unset (invalid value) remains inactive (unused); the corresponding function may\n be disabled. For example, a register named \"uavcan.pub.measurement.id\" defines the subject-ID of a measurement\n published by this node; if the register contains an invalid value (above the maximum valid subject-ID),\n said measurement is not published.\n\n The same name is used in other similar registers defined below. Network introspection and autoconfiguration tools\n will expect to find a register of this form for every configurable port supported by the node.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.pub.PORT_NAME.type                           string          immutable, persistent   N/A\n   uavcan.sub.PORT_NAME.type                           ditto           ditto                   ditto\n   uavcan.cln.PORT_NAME.type                           ditto           ditto                   ditto\n   uavcan.srv.PORT_NAME.type                           ditto           ditto                   ditto\n\n Publication/subscription/client/server full data type name and dot-separated version numbers, respectively.\n These registers are set by the vendor once and typically they are to remain unchanged (hence \"immutable\").\n The \"PORT_NAME\" defines the human-friendly name of the port as specified above.\n For example, a register named \"uavcan.pub.measurement.type\" may contain \"uavcan.si.sample.angle.Quaternion.1.0\".\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.diagnostic.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.can.bitrate                                  natural32[2]    implementation-defined  implementation-defined\n   uavcan.can.iface                                    string          mutable, persistent     implementation-defined\n\n These registers are only relevant for nodes that support Cyphal/CAN.\n\n uavcan.can.bitrate defines the CAN bus bit rate: the first value is the arbitration bit rate, the second is the\n data phase bit rate. Nodes that support only Classic CAN should ignore the second value. Nodes that support CAN FD\n should initialize in the Classic CAN mode (MTU 8 bytes, BRS flag not set) if the values are equal. If CAN bitrate\n is not configurable or is always auto-detected, this register may be omitted or made immutable; otherwise it should\n be mutable and persistent.\n\n uavcan.can.iface is only relevant for software nodes or nodes that are capable of using different CAN interfaces.\n The value is a space-separated list of CAN interface names to use. The name format is implementation-defined\n (for example, \"can0\").\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.udp.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------#\n\n   uavcan.serial.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------"
[INFO] [stdout]       | |_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
[INFO] [stdout]       |
[INFO] [stdout]       = note: the link appears in this line:
[INFO] [stdout]               
[INFO] [stdout]                  uavcan.node.id                                      natural16[1]    mutable, persistent     65535 (unset/PnP)
[INFO] [stdout]                                                                                ^
[INFO] [stdout]       = note: no item named `1` in scope
[INFO] [stdout]       = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `2`
[INFO] [stdout]      --> src/generated.rs:11603:13
[INFO] [stdout]       |
[INFO] [stdout] 11603 | /             /// `uavcan.register.Access.1.0`
[INFO] [stdout] 11604 | |             ///
[INFO] [stdout] 11605 | |             /// Size ranges from 2 to 515 bytes
[INFO] [stdout] 11606 | |             ///
[INFO] [stdout] 11607 | |             #[cfg_attr(
[INFO] [stdout] 11608 | |                 not(doctest),
[INFO] [stdout] 11609 | |                 doc = " Registers are strongly-typed named values used to store the configuration parameters of a node.\n This service is used to write and read a register.\n\n\n   READ/WRITE BEHAVIORS\n\n The write operation is performed first, unless skipped by sending an empty value in the request.\n The server may attempt to convert the type of the supplied value to the correct type if there is a type mismatch\n (e.g. uint8 may be converted to uint16); however, servers are not required to perform implicit type conversion,\n and the rules of such conversion are not explicitly specified, so this behavior should not be relied upon.\n\n On the next step the register will be read regardless of the outcome of the write operation. As such, if the write\n operation could not be performed (e.g. due to a type mismatch or any other issue), the register will retain its old\n value. By evaluating the response the caller can determine whether the register was written successfully.\n\n The write-read sequence is not guaranteed to be atomic, meaning that external influences may cause the register to\n change its value between the write and the subsequent read operation. The caller is responsible for handling that\n case properly.\n\n The timestamp provided in the response corresponds to the time when the register was read. The timestamp may\n be empty if the server does not support timestamping or its clock is not (yet) synchronized with the network.\n\n If only read is desired, but not write, the caller shall provide a value of type 'empty'. That will signal the server\n that the write operation shall be skipped, and it will proceed to read the register immediately.\n\n If the requested register does not exist, the write operation will have no effect and the returned value will be\n empty. Existing registers should not return 'empty' when read since that would make them indistinguishable from\n nonexistent registers.\n\n\n   REGISTER DEFINITION REQUIREMENTS\n\n Registers shall never change their type or flags as long as the server is running. Meaning that:\n   - Mutability and persistence flags cannot change their states.\n   - Read operations shall always return values of the same type and same dimensionality.\n     The dimensionality requirement does not apply to inherently variable-length values such as strings and\n     unstructured chunks.\n\n Register name should contain only:\n   - Lowercase ASCII alphanumeric characters (a-z, 0-9)\n   - Full stop (.)\n   - Low line (underscore) (_)\n With the following limitations/recommendations:\n   - The name shall not begin with a decimal digit (0-9).\n   - The name shall neither begin nor end with a full stop.\n   - A low line shall not be followed by a non-alphanumeric character.\n   - The name should contain at least one full stop character.\n Other patterns and ASCII characters are reserved for special function registers (introduced below).\n\n\n   ENVIRONMENT VARIABLES\n\n This section applies only to software nodes executed in a high-level operating system that supports environment\n variables or an equivalent mechanism.\n\n When a software node is launched, it is usually necessary to provide some of its configuration information early,\n particularly that which is related to Cyphal networking, before the node is started. Environment variables offer\n a convenient way of addressing this. Software nodes that support the register interface should evaluate the\n available environment variables during initialization and update their registers (whether they are stored in\n a persistent storage or in memory) accoringly. This should be completed before the first register read access.\n\n A register name is mapped to an environment variable name as follows:\n   - the name is upper-cased;\n   - full stop characters are replaced with double low line characters.\n For example: 'motor.inductance_dq' is mapped to 'MOTOR__INDUCTANCE_DQ'.\n\n Register values are represented in environment variables as follows:\n   - string:                         utf-8 or platform-specific\n   - unstructured:                   as-is\n   - bit, integer*, natural*, real*: space-separated decimals\n\n If an environment variable matches the name of an existing register but its value cannot be converted to the\n register's type, an error should be raised.\n\n If an environment variable does not match the name of any register, it may be ignored. However, if the implementation\n can reliably deduce the type and purpose of the register, it may create one automatically. This provision is to\n support applications where the register schema may be altered by configuration.\n\n\n   SPECIAL FUNCTION REGISTERS\n\n The following optional special function register names are defined:\n   - suffix '<' is used to define an immutable persistent value that contains the maximum value\n     of the respective register.\n   - suffix '>' is like above, used to define the minimum value of the respective register.\n   - suffix '=' is like above, used to define the default value of the respective register.\n   - prefix '*' is reserved for raw memory access (to be defined later).\n Examples:\n   - register name \"system.parameter\"\n   - maximum value is contained in the register named \"system.parameter<\" (optional)\n   - minimum value is contained in the register named \"system.parameter>\" (optional)\n   - default value is contained in the register named \"system.parameter=\" (optional)\n\n The type and dimensionality of the special function registers containing the minimum, maximum, and the default\n value of a register shall be the same as those of the register they relate to.\n\n If a written value exceeds the minimum/maximum specified by the respective special function registers,\n the server may either adjust the value automatically, or to retain the old value, depending on which behavior\n suits the objectives of the application better.\n The values of registers containing non-scalar numerical entities should be compared elementwise.\n\n\n   STANDARD REGISTERS\n\n The following table specifies the register name patterns that are reserved by the specification for\n common functions. These conventions are not mandatory to follow, but implementers are recommended to adhere because\n they enable enhanced introspection capabilities and simplify device configuration and diagnostics.\n\n   REGISTER NAME PATTERN                               TYPE            FLAGS                   RECOMMENDED DEFAULT\n =====================================================================================================================\n\n   uavcan.node.id                                      natural16[1]    mutable, persistent     65535 (unset/PnP)\n\n Contains the node-ID of the local node. Values above the maximum valid node-ID for the current transport\n indicate that the node-ID is not set; if plug-and-play is supported, it will be used by the node to obtain an\n automatic node-ID. Invalid values other than 65535 should be avoided for consistency.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.node.description                             string          mutable, persistent     (empty)\n\n User/integrator-defined, human-readable description of this specific node.\n This is intended for use by a system integrator and should not be set by the manufacturer of a component.\n For example: on a quad-rotor drone this might read \"motor 2\" for one of the ESC nodes.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.pub.PORT_NAME.id                             natural16[1]    mutable, persistent     65535 (unset, invalid)\n   uavcan.sub.PORT_NAME.id                             ditto           ditto                   ditto\n   uavcan.cln.PORT_NAME.id                             ditto           ditto                   ditto\n   uavcan.srv.PORT_NAME.id                             ditto           ditto                   ditto\n\n Publication/subscription/client/server port-ID, respectively. These registers are configured by the system integrator\n or an autoconfiguration authority when the node is first connected to a network.\n\n The \"PORT_NAME\" defines the human-friendly name of the port, which is related to the corresponding function\n or a network service supported by the node. The name shall match the following POSIX ERE expression:\n\n   [a-zA-Z_][a-zA-Z0-9_.]*\n\n The names are defined by the vendor of the node. The user/integrator is expected to understand their meaning and\n relation to the functional capabilities of the node by reading the technical documentation provided by the vendor.\n\n A port whose port-ID register is unset (invalid value) remains inactive (unused); the corresponding function may\n be disabled. For example, a register named \"uavcan.pub.measurement.id\" defines the subject-ID of a measurement\n published by this node; if the register contains an invalid value (above the maximum valid subject-ID),\n said measurement is not published.\n\n The same name is used in other similar registers defined below. Network introspection and autoconfiguration tools\n will expect to find a register of this form for every configurable port supported by the node.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.pub.PORT_NAME.type                           string          immutable, persistent   N/A\n   uavcan.sub.PORT_NAME.type                           ditto           ditto                   ditto\n   uavcan.cln.PORT_NAME.type                           ditto           ditto                   ditto\n   uavcan.srv.PORT_NAME.type                           ditto           ditto                   ditto\n\n Publication/subscription/client/server full data type name and dot-separated version numbers, respectively.\n These registers are set by the vendor once and typically they are to remain unchanged (hence \"immutable\").\n The \"PORT_NAME\" defines the human-friendly name of the port as specified above.\n For example, a register named \"uavcan.pub.measurement.type\" may contain \"uavcan.si.sample.angle.Quaternion.1.0\".\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.diagnostic.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.can.bitrate                                  natural32[2]    implementation-defined  implementation-defined\n   uavcan.can.iface                                    string          mutable, persistent     implementation-defined\n\n These registers are only relevant for nodes that support Cyphal/CAN.\n\n uavcan.can.bitrate defines the CAN bus bit rate: the first value is the arbitration bit rate, the second is the\n data phase bit rate. Nodes that support only Classic CAN should ignore the second value. Nodes that support CAN FD\n should initialize in the Classic CAN mode (MTU 8 bytes, BRS flag not set) if the values are equal. If CAN bitrate\n is not configurable or is always auto-detected, this register may be omitted or made immutable; otherwise it should\n be mutable and persistent.\n\n uavcan.can.iface is only relevant for software nodes or nodes that are capable of using different CAN interfaces.\n The value is a space-separated list of CAN interface names to use. The name format is implementation-defined\n (for example, \"can0\").\n\n ---------------------------------------------------------------------------------------------------------------------\n\n   uavcan.udp.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------#\n\n   uavcan.serial.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------"
[INFO] [stdout]       | |_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
[INFO] [stdout]       |
[INFO] [stdout]       = note: the link appears in this line:
[INFO] [stdout]               
[INFO] [stdout]                  uavcan.can.bitrate                                  natural32[2]    implementation-defined  implementation-defined
[INFO] [stdout]                                                                                ^
[INFO] [stdout]       = note: no item named `2` in scope
[INFO] [stdout]       = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]      --> src/generated.rs:16014:21
[INFO] [stdout]       |
[INFO] [stdout] 16014 |                     doc = " [second]\n Publication period limits.\n A master should not change its publication period while running."
[INFO] [stdout]       |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: the link appears in this line:
[INFO] [stdout]               
[INFO] [stdout]               [second]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]       = note: no item named `second` in scope
[INFO] [stdout]       = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `second`
[INFO] [stdout]      --> src/generated.rs:16124:21
[INFO] [stdout]       |
[INFO] [stdout] 16124 | ...   doc = " [second]\n The fixed difference, in seconds, between TAI and GPS time. Does not change ever.\n Systems that use GPS time as a reference should convert that to TAI by adding this difference."
[INFO] [stdout]       |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: the link appears in this line:
[INFO] [stdout]               
[INFO] [stdout]               [second]
[INFO] [stdout]                ^^^^^^
[INFO] [stdout]       = note: no item named `second` in scope
[INFO] [stdout]       = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:2436:21
[INFO] [stdout]      |
[INFO] [stdout] 2436 | /                     /// `reg.udral.physics.optics.HighColor.0.1`
[INFO] [stdout] 2437 | |                     ///
[INFO] [stdout] 2438 | |                     /// Fixed size 2 bytes
[INFO] [stdout] 2439 | |                     ///
[INFO] [stdout] 2440 | |                     #[cfg_attr(
[INFO] [stdout] 2441 | |                         not(doctest),
[INFO] [stdout] 2442 | |                         doc = " Color in the standard 16-bit 5-6-5 RGB format (green is wider due to non-uniform color sensitivity of the human eye).\n https://en.wikipedia.org/wiki/High_color\n\n For reasons of unification, a monochrome light can be modeled using the same type,\n where the brightness is defined as the mean of the color components normalized to one:\n\n   brightness = (red/MAX_RED + green/MAX_GREEN + blue/MAX_BLUE) / 3"
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/High_color>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout]      = note: `#[warn(rustdoc::bare_urls)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:2581:21
[INFO] [stdout]      |
[INFO] [stdout] 2581 | /                     /// `reg.udral.physics.time.TAI64.0.1`
[INFO] [stdout] 2582 | |                     ///
[INFO] [stdout] 2583 | |                     /// Fixed size 8 bytes
[INFO] [stdout] 2584 | |                     ///
[INFO] [stdout] 2585 | |                     #[cfg_attr(
[INFO] [stdout] 2586 | |                         not(doctest),
[INFO] [stdout] 2587 | |                         doc = " Standard TAI64N time label (https://cr.yp.to/libtai/tai64.html). Quote from the source:\n\n   TAI stands for Temps Atomique International, the current international real-time standard.\n   One TAI second is defined as the duration of 9192631770 periods of the radiation corresponding\n   to the transition between the two hyperfine levels of the ground state of the cesium atom.\n   TAI also specifies a frame of reference. Further discussion of special relativity is outside\n   the scope of this document.\n\n   A TAI64 label is an integer between 0 and 2^64 referring to a particular second of real time. Integer s refers to:\n\n       - the TAI second beginning exactly 2^62 - s seconds before the beginning of 1970 TAI,\n         if s is between 0 inclusive and 2^62 exclusive; or\n\n       - the TAI second beginning exactly s - 2^62 seconds after the beginning of 1970 TAI,\n         if s is between 2^62 inclusive and 2^63 exclusive.\n"
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://cr.yp.to/libtai/tai64.html>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:2799:25
[INFO] [stdout]      |
[INFO] [stdout] 2799 | /                         /// `reg.udral.service.actuator.common.FaultFlags.0.1`
[INFO] [stdout] 2800 | |                         ///
[INFO] [stdout] 2801 | |                         /// Fixed size 2 bytes
[INFO] [stdout] 2802 | |                         ///
[INFO] [stdout] 2803 | |                         #[cfg_attr(
[INFO] [stdout] 2804 | |                             not(doctest),
[INFO] [stdout] 2805 | |                             doc = " A collection of detailed fault flags indicating problems detected by the service provider.\n A fault flag is set when the corresponding parameter exceeds its safe operating area (SOA) as defined by the vendor;\n see https://en.wikipedia.org/wiki/Safe_operating_area.\n As long as at least one flag is set, the service health should not be NOMINAL."
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Safe_operating_area.>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:3024:29
[INFO] [stdout]      |
[INFO] [stdout] 3024 | /                             /// `reg.udral.service.actuator.common.sp._.0.1`
[INFO] [stdout] 3025 | |                             ///
[INFO] [stdout] 3026 | |                             /// Fixed size 0 bytes
[INFO] [stdout] 3027 | |                             ///
[INFO] [stdout] 3028 | |                             #[cfg_attr(
[INFO] [stdout] 3029 | |                                 not(doctest),
[INFO] [stdout] 3030 | |                                 doc = " This is a collection of weakly-typed primitives used to control groups of actuators synchronously.\n\n Actuators are expected to subscribe using the largest array type. Publishers would choose the array type\n depending on the number of actuators in the group. The actuators would be expecting the largest array type,\n where the missing elements will be zero-filled automatically by the protocol stack thanks to the\n Implicit Zero Extension Rule (refer to the Cyphal Specification for details).\n\n The physical meaning of the values contained in the array is defined by the respective actuator service specification.\n If ratiometric control is used, then the range should be [-1, +1].\n\n It follows that a standalone actuator (that is not a member of any group) is just a special case of a group of 1,\n where the setpoint type is a single scalar.\n\n The Cyphal Specification might benefit from supporting flexible array fields to avoid having to deal with redundant\n similar types: https://en.wikipedia.org/wiki/Flexible_array_member, so that instead of having multiple types that\n differ only in size of the array fields, one could just say `float16[0] value` such that the size of zero indicates\n that the array is a flex array."
[INFO] [stdout]      | |_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Flexible_array_member>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:3043:37
[INFO] [stdout]      |
[INFO] [stdout] 3043 | ...                   doc = " The float epsilon defined for convenience.\n See https://en.wikipedia.org/wiki/Machine_epsilon."
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Machine_epsilon.>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:3557:25
[INFO] [stdout]      |
[INFO] [stdout] 3557 | /                         /// `reg.udral.service.actuator.servo._.0.1`
[INFO] [stdout] 3558 | |                         ///
[INFO] [stdout] 3559 | |                         /// Fixed size 0 bytes
[INFO] [stdout] 3560 | |                         ///
[INFO] [stdout] 3561 | |                         #[cfg_attr(
[INFO] [stdout] 3562 | |                             not(doctest),
[INFO] [stdout] 3563 | |                             doc = " A servo can actuate either a translational or rotary load using electric power from the high-voltage DC bus.\n\n The type of load (translational or rotational) dictates which type is used for commanding the setpoint and reporting\n the status:\n   - reg.udral.physics.dynamics.rotation.Planar[Ts]\n   - reg.udral.physics.dynamics.translation.Linear[Ts]\n For generality, either or both of these types are referred to as \"timestamped dynamics\" or \"non-timestamped dynamics\".\n\n The default readiness state is STANDBY. While in this state, the servo is not allowed to apply force to the load,\n and the setpoint subject is ignored. The servo shall enter the STANDBY state automatically if the readiness subject\n is not updated for CONTROL_TIMEOUT.\n\n The subjects defined by this service are shown on the following canvas. Implementers are encouraged to add\n custom subjects with additional data. Notice that the physics subjects are timestamped.\n\n                  SUBJECT NAME                         SUBJECT TYPE                                    RATE\n\n   +------------+ setpoint             +------------+  (non-timestamped dynamics) (see below)          R\n   |            |--------------------->|            |\n   |            | readiness            |            |  reg.udral.service.common.Readiness              any\n   |            |--------------------->|            |\n   |            | feedback             |            |  reg.udral.service.actuator.common.Feedback      R\n   |            |<---------------------|            |\n   | Controller | status               |   Servo    |  reg.udral.service.actuator.common.Status        any\n   |            |<---------------------|            |\n   |            | power                |            |  reg.udral.physics.electricity.PowerTs           R\n   |            |<---------------------|            |\n   |            | dynamics             |            |  (timestamped dynamics)                          R\n   |            |<---------------------|            |\n   +------------+                      +------------+\n\n Should it be necessary to control a group of servos in lockstep, an arbitrary number of them may subscribe\n to the same setpoint subject (their published subjects would be different of course).\n\n If the servo is ENGAGED, setpoint messages are processed as follows: the first field of the kinematic setpoint type\n that contains a finite value is taken as the commanded setpoint. The following non-negative finite fields define\n the motion profile, where negative and non-finite values are ignored.\n\n For example, a translational dynamics message containing the following values:\n   position     = +0.35\n   velocity     = NaN\n   acceleration = NaN\n   force        = 30\n ...is interpreted as follows: position the load at 0.35 meters relative to the neutral, limit the force to 30 newton,\n do not limit the velocity and acceleration. Here is another example:\n   angular position     = NaN\n   angular velocity     = +400\n   angular acceleration = NaN\n   torque               = 50\n which is interpreted as follows: reach the angular velocity of 400 radian/second in the forward direction,\n limit the torque to 50 newton*meters, do not limit the acceleration.\n\n The motion profile parameters that are not supported are to be silently ignored by the servo. If the commanded\n parameter cannot be controlled by the servo, the setpoint is to be ignored. For example, in the second example above,\n if the servo does not support angular velocity control, the setpoint message would be discarded.\n\n The above describes the typical use case where each servo is controlled over a dedicated setpoint\n subject independently (or a group of servos are controlled in lockstep using the same setpoint subject).\n Some applications may require synchronous independent control of multiple servos in a group, similar to ESC.\n To address this, a compliant servo should support another operating mode where the controlled quantity\n (position, velocity, force, etc.) is selected statically along with the motion profile (using the register API),\n and the servo subscribes to the setpoint subject of type \"reg.udral.service.actuator.common.sp.*\".\n Having its index in the group configured statically, the servo fetches the setpoint from the appropriate\n index in the setpoint array.\n The resulting topology closely resembles that of the ESC service:\n\n                                                   SUBJECT NAME            SUBJECT TYPE\n  +----------------+\n  |   Controller   |---------+------------+----... setpoint                reg.udral.service.actuator.common.sp.*\n  |                |-------+-)----------+-)----... readiness               reg.udral.service.common.Readiness\n  +----------------+       | |          | |\n   ^ ^ ^ ^  ^ ^ ^ ^        v v          v v\n   | | | |  | | | |   +---------+  +---------+\n   | | | |  | | | |   |Servo i=0|  |Servo i=1| ...\n   | | | |  | | | |   +---------+  +---------+\n   | | | |  | | | |     | | | |      | | | |\n   | | | |  | | | +-----+ | | |      | | | |       feedback                reg.udral.service.actuator.common.Feedback\n   | | | |  | | +---------+ | |      | | | |       status                  reg.udral.service.actuator.common.Status\n   | | | |  | +-------------+ |      | | | |       power                   reg.udral.physics.electricity.PowerTs\n   | | | |  +-----------------+      | | | |       dynamics                (timestamped dynamics)\n   | | | |                           | | | |\n   | | | +---------------------------+ | | |\n   | | +-------------------------------+ | |\n   | +-----------------------------------+ |\n   +---------------------------------------+\n\n If the selected readiness state is SLEEP, the behavior is implementation-defined. Implementations are recommended to\n power off the high-voltage circuitry and all non-essential components (e.g., LED indication, sensors, etc.)\n to minimize the power consumption. The publication rate requirements do not apply if the state is SLEEP.\n\n The worst-case readiness state transition latency is not defined.\n\n The following subjects shall be published immediately after a new setpoint is applied even if the servo is STANDBY:\n\n   SUBJECT NAME        RECOMMENDED PRIORITY\n   ---------------------------------------------\n   feedback            same as the setpoint\n   power               second to the setpoint\n   dynamics            second to the setpoint\n\n If no setpoint is being published, these subjects should continue being updated at least at 1/MAX_PUBLICATION_PERIOD.\n\n If the setpoint publication rate exceeds 50 Hz, implementations are allowed (but not required) to throttle these\n subjects by dropping some of the messages such that the publication rate of each subject does not exceed 50 Hz.\n Implementations operating over Classic CAN are recommended to do this.\n\n The other subjects may be published at an implementation-defined rate and priority,\n which should be consistent across the group.\n\n The measurements carried by the published messages should be low-pass filtered with an adequate cutoff frequency to\n avoid aliasing effects. Implementations should strive to sample all parameters simultaneously.\n\n It is assumed that the servo is powered from a DC electric power supply network. A positive electric current\n represents current flowing from the DC network into the servo (negative represents regeneration).\n\n Excepting edge cases and transients, torque/force and current are generally of the same sign (barring the difference\n introduced by the power dissipated by the servo itself).\n\n                                   +velocity\n                                       ^\n                               braking,| forward,\n                               negative| positive\n                               power   | power\n                            -----------+---------->  +torque/force/current\n                               reverse,| braking,\n                               positive| negative\n                               power   | power\n\n An example implementation is available at https://github.com/OpenCyphal/demos"
[INFO] [stdout]      | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://github.com/OpenCyphal/demos>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:3645:21
[INFO] [stdout]      |
[INFO] [stdout] 3645 | /                     /// `reg.udral.service.battery.Error.0.1`
[INFO] [stdout] 3646 | |                     ///
[INFO] [stdout] 3647 | |                     /// Fixed size 1 bytes
[INFO] [stdout] 3648 | |                     ///
[INFO] [stdout] 3649 | |                     #[cfg_attr(
[INFO] [stdout] 3650 | |                         not(doctest),
[INFO] [stdout] 3651 | |                         doc = " Generic error codes reported by the service provider.\n An error is reported when the corresponding parameter exceeds its safe operating area (SOA) as defined by the vendor;\n see https://en.wikipedia.org/wiki/Safe_operating_area.\n As long as an error condition is present, the service health should not be NOMINAL.\n\n If there are multiple error conditions present, the most severe one should be reported. The severity ordering\n is implementation-defined. Barring special requirements, it is recommended to give preference to errors whose\n code is smaller (e.g., BAD_BATTERY trumps TEMPERATURE_COLD)."
[INFO] [stdout]      | |______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Safe_operating_area.>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:4050:29
[INFO] [stdout]      |
[INFO] [stdout] 4050 | / ...       doc = " Note that the health code generally should not reflect the battery charge unless the service provider knows\n that the ...
[INFO] [stdout] 4051 | | ...   )]
[INFO] [stdout] 4052 | | ...   ///
[INFO] [stdout] 4053 | | ...   /// `reg.udral.service.common.Heartbeat.0.1`
[INFO] [stdout] 4054 | | ...   ///
[INFO] [stdout] 4055 | | ...   /// Always aligned,
[INFO] [stdout] 4056 | | ...   /// size 16 bits
[INFO] [stdout]      | |______________________^ help: use an automatic link instead: `<https://opencyphal.org/guide.>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:8588:13
[INFO] [stdout]      |
[INFO] [stdout] 8588 | /             /// `uavcan.node.Health.1.0`
[INFO] [stdout] 8589 | |             ///
[INFO] [stdout] 8590 | |             /// Fixed size 1 bytes
[INFO] [stdout] 8591 | |             ///
[INFO] [stdout] 8592 | |             #[cfg_attr(
[INFO] [stdout] 8593 | |                 not(doctest),
[INFO] [stdout] 8594 | |                 doc = " Abstract component health information. If the node performs multiple activities (provides multiple network services),\n its health status should reflect the status of the worst-performing activity (network service).\n Follows:\n   https://www.law.cornell.edu/cfr/text/14/23.1322\n   https://www.faa.gov/documentLibrary/media/Advisory_Circular/AC_25.1322-1.pdf section 6"
[INFO] [stdout]      | |__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://www.law.cornell.edu/cfr/text/14/23.1322>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]     --> src/generated.rs:8588:13
[INFO] [stdout]      |
[INFO] [stdout] 8588 | /             /// `uavcan.node.Health.1.0`
[INFO] [stdout] 8589 | |             ///
[INFO] [stdout] 8590 | |             /// Fixed size 1 bytes
[INFO] [stdout] 8591 | |             ///
[INFO] [stdout] 8592 | |             #[cfg_attr(
[INFO] [stdout] 8593 | |                 not(doctest),
[INFO] [stdout] 8594 | |                 doc = " Abstract component health information. If the node performs multiple activities (provides multiple network services),\n its health status should reflect the status of the worst-performing activity (network service).\n Follows:\n   https://www.law.cornell.edu/cfr/text/14/23.1322\n   https://www.faa.gov/documentLibrary/media/Advisory_Circular/AC_25.1322-1.pdf section 6"
[INFO] [stdout]      | |__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://www.faa.gov/documentLibrary/media/Advisory_Circular/AC_25.1322-1.pdf>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:15986:13
[INFO] [stdout]       |
[INFO] [stdout] 15986 | /             /// `uavcan.time.Synchronization.1.0`
[INFO] [stdout] 15987 | |             ///
[INFO] [stdout] 15988 | |             /// Fixed size 7 bytes
[INFO] [stdout] 15989 | |             ///
[INFO] [stdout] 15990 | |             #[cfg_attr(
[INFO] [stdout] 15991 | |                 not(doctest),
[INFO] [stdout] 15992 | |                 doc = " Network-wide time synchronization message.\n Any node that publishes timestamped data should use this time reference.\n\n The time synchronization algorithm is based on the work\n \"Implementing a Distributed High-Resolution Real-Time Clock using the CAN-Bus\" by M. Gergeleit and H. Streich.\n The general idea of the algorithm is to have one or more nodes that periodically publish a message of this type\n containing the exact timestamp of the PREVIOUS transmission of this message.\n A node that publishes this message periodically is referred to as a \"time synchronization master\",\n whereas nodes that synchronize their clocks with the master are referred to as \"time synchronization slaves\".\n\n Once a time base is chosen, it cannot be changed as long as at least one node on the network is running.\n In other words, the time base cannot be changed while the network is operating.\n An implication of this is that if there are redundant time synchronization masters, they all shall\n use the same time base.\n\n The resolution is dependent on the transport and its physical layer, but generally it can be assumed\n to be close to one bit time but not better than one microsecond (e.g., for a 500 kbps CAN bus,\n the resolution is two microseconds). The maximum accuracy is achievable only if the transport layer\n supports precise timestamping in hardware; otherwise, the accuracy may be degraded.\n\n This algorithm allows the slaves to precisely estimate the difference (i.e., phase error) between their\n local time and the master clock they are synchronized with. The algorithm for clock rate adjustment\n is entirely implementation-defined (for example, a simple phase-locked loop or a PID rate controller can be used).\n\n The network can accommodate more than one time synchronization master for purposes of increased reliability:\n if one master fails, the others will continue to provide the network with accurate and consistent time information.\n The risk of undesirable transients while the masters are swapped is mitigated by the requirement that all masters\n use the same time base at all times, as described above.\n\n The master with the lowest node-ID is called the \"dominant master\". The current dominant master ceases to be one\n if its last synchronization message was published more than 3X seconds ago, where X is the time interval\n between the last and the previous messages published by it. In this case, the master with the next-higher node-ID\n will take over as the new dominant master. The current dominant master will be displaced immediately as soon as\n the first message from a new master with a lower node-ID is seen on the bus.\n\n In the presence of multiple masters, they all publish their time synchronization messages concurrently at all times.\n The slaves shall listen to the master with the lowest node-ID and ignore the messages published by masters with\n higher node-ID values.\n\n Currently, there is a work underway to develop and validate a highly robust fault-operational time synchronization\n algorithm where the slaves select the median time base among all available masters rather than using only the\n one with the lowest node-ID value. Follow the work at https://forum.opencyphal.org. When complete, this algorithm\n will be added in a backward-compatible way as an option for high-reliability systems.\n\n For networks with redundant transports, the timestamp value published on different interfaces is likely to be\n different, since different transports are generally not expected to be synchronized. Synchronization slaves\n are allowed to use any of the available redundant interfaces for synchronization at their discretion.\n\n The following pseudocode shows the logic of a time synchronization master. This example assumes that the master\n does not need to synchronize its own clock with other masters on the bus, which is the case if the current master\n is the only master, or if all masters synchronize their clocks with a robust external source, e.g., a GNSS system.\n If several masters need to synchronize their clock through the bus, their logic will be extended with the\n slave-side behavior explained later.\n\n       // State variables\n       transfer_id := 0;\n       previous_tx_timestamp_per_iface[NUM_IFACES] := {0};\n\n       // This function publishes a message with a specified transfer-ID using only one transport interface.\n       function publishMessage(transfer_id, iface_index, msg);\n\n       // This callback is invoked when the transport layer completes the transmission of a time sync message.\n       // Observe that the time sync message is always a single-frame message by virtue of its small size.\n       // The tx_timestamp argument contains the exact timestamp when the transport frame was delivered to the bus.\n       function messageTxTimestampCallback(iface_index, tx_timestamp)\n       {\n           previous_tx_timestamp_per_iface[iface_index] := tx_timestamp;\n       }\n\n       // Publishes messages of type uavcan.time.Synchronization to each available transport interface.\n       // It is assumed that this function is invoked with a fixed frequency not lower than 1 hertz.\n       function publishTimeSync()\n       {\n           for (i := 0; i < NUM_IFACES; i++)\n           {\n               message := uavcan.time.Synchronization();\n               message.previous_transmission_timestamp_usec := previous_tx_timestamp_per_iface[i];\n               previous_tx_timestamp_per_iface[i] := 0;\n               publishMessage(transfer_id, i, message);\n           }\n           transfer_id++; // Overflow shall be handled correctly\n       }\n\n (end of the master-side logic pseudocode)\n The following pseudocode describes the logic of a time synchronization slave.\n\n       // State variables:\n       previous_rx_real_timestamp := 0;            // This clock is being synchronized\n       previous_rx_monotonic_timestamp := 0;       // Monotonic time -- doesn't leap or change rate\n       previous_transfer_id := 0;\n       state := STATE_UPDATE;                      // Variants: STATE_UPDATE, STATE_ADJUST\n       master_node_id := -1;                       // Invalid value\n       iface_index := -1;                          // Invalid value\n\n       // This function adjusts the local clock by the specified amount\n       function adjustLocalTime(phase_error);\n\n       function adjust(message)\n       {\n           // Clock adjustment will be performed every second message\n           local_time_phase_error := previous_rx_real_timestamp - msg.previous_transmission_timestamp_microsecond;\n           adjustLocalTime(local_time_phase_error);\n           state := STATE_UPDATE;\n       }\n\n       function update(message)\n       {\n           // A message is assumed to have two timestamps:\n           //   Real      - sampled from the clock that is being synchronized\n           //   Monotonic - clock that never leaps and never changes rate\n           previous_rx_real_timestamp := message.rx_real_timestamp;\n           previous_rx_monotonic_timestamp := message.rx_monotonic_timestamp;\n           master_node_id := message.source_node_id;\n           iface_index := message.iface_index;\n           previous_transfer_id := message.transfer_id;\n           state := STATE_ADJUST;\n       }\n\n       // Accepts the message of type uavcan.time.Synchronization\n       function handleReceivedTimeSyncMessage(message)\n       {\n           time_since_previous_msg := message.monotonic_timestamp - previous_rx_monotonic_timestamp;\n\n           needs_init := (master_node_id < 0) or (iface_index < 0);\n           switch_master := message.source_node_id < master_node_id;\n\n           // The value publisher_timeout is computed as described in the specification (3x interval)\n           publisher_timed_out := time_since_previous_msg > publisher_timeout;\n\n           if (needs_init or switch_master or publisher_timed_out)\n           {\n               update(message);\n           }\n           else if ((message.iface_index == iface_index) and (message.source_node_id == master_node_id))\n           {\n               // Revert the state to STATE_UPDATE if needed\n               if (state == STATE_ADJUST)\n               {\n                   msg_invalid := message.previous_transmission_timestamp_microsecond == 0;\n                   // Overflow shall be handled correctly\n                   wrong_tid := message.transfer_id != (previous_transfer_id + 1);\n                   wrong_timing := time_since_previous_msg > MAX_PUBLICATION_PERIOD;\n                   if (msg_invalid or wrong_tid or wrong_timing)\n                   {\n                       state := STATE_UPDATE;\n                   }\n               }\n               // Handle the current state\n               if (state == STATE_ADJUST)\n               {\n                   adjust(message);\n               }\n               else\n               {\n                   update(message);\n               }\n           }   // else ignore\n       }\n\n (end of the slave-side logic pseudocode)"
[INFO] [stdout]       | |____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://forum.opencyphal.org.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:16096:13
[INFO] [stdout]       |
[INFO] [stdout] 16096 | /             /// `uavcan.time.TAIInfo.0.1`
[INFO] [stdout] 16097 | |             ///
[INFO] [stdout] 16098 | |             /// Fixed size 2 bytes
[INFO] [stdout] 16099 | |             ///
[INFO] [stdout] 16100 | |             #[cfg_attr(
[INFO] [stdout] 16101 | |                 not(doctest),
[INFO] [stdout] 16102 | |                 doc = " This data types defines constants and runtime values pertaining to the International Atomic Time, also known as TAI.\n See https://en.wikipedia.org/wiki/International_Atomic_Time.\n\n The relationship between the three major time systems -- TAI, GPS, and UTC -- is as follows:\n\n   TAI = GPS + 19 seconds\n   TAI = UTC + LS + 10 seconds\n\n Where \"LS\" is the current number of leap seconds: https://en.wikipedia.org/wiki/Leap_second.\n\n Cyphal applications should only rely on TAI whenever a global time system is needed.\n GPS time is strongly discouraged for reasons of consistency across different positioning systems and applications."
[INFO] [stdout]       | |___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/International_Atomic_Time.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:16096:13
[INFO] [stdout]       |
[INFO] [stdout] 16096 | /             /// `uavcan.time.TAIInfo.0.1`
[INFO] [stdout] 16097 | |             ///
[INFO] [stdout] 16098 | |             /// Fixed size 2 bytes
[INFO] [stdout] 16099 | |             ///
[INFO] [stdout] 16100 | |             #[cfg_attr(
[INFO] [stdout] 16101 | |                 not(doctest),
[INFO] [stdout] 16102 | |                 doc = " This data types defines constants and runtime values pertaining to the International Atomic Time, also known as TAI.\n See https://en.wikipedia.org/wiki/International_Atomic_Time.\n\n The relationship between the three major time systems -- TAI, GPS, and UTC -- is as follows:\n\n   TAI = GPS + 19 seconds\n   TAI = UTC + LS + 10 seconds\n\n Where \"LS\" is the current number of leap seconds: https://en.wikipedia.org/wiki/Leap_second.\n\n Cyphal applications should only rely on TAI whenever a global time system is needed.\n GPS time is strongly discouraged for reasons of consistency across different positioning systems and applications."
[INFO] [stdout]       | |___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Leap_second.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:16107:21
[INFO] [stdout]       |
[INFO] [stdout] 16107 | / ...       doc = " The current difference between TAI and UTC, if known. If unknown, set to zero.\n\n This value may change states between...
[INFO] [stdout] 16108 | | ...   )]
[INFO] [stdout] 16109 | | ...   ///
[INFO] [stdout] 16110 | | ...   /// `saturated uint10`
[INFO] [stdout] 16111 | | ...   ///
[INFO] [stdout] 16112 | | ...   /// Always aligned,
[INFO] [stdout] 16113 | | ...   /// size 10 bits
[INFO] [stdout]       | |______________________^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/Leap_second.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this URL is not a hyperlink
[INFO] [stdout]      --> src/generated.rs:16180:21
[INFO] [stdout]       |
[INFO] [stdout] 16180 | ...   doc = " International Atomic Time; https://en.wikipedia.org/wiki/International_Atomic_Time.\n The timestamp value contains the number of microseconds elapsed since 1970-01-01T00:00:00Z TAI.\n TAI is always a fixed integer number of seconds ahead of GPS time.\n Systems that use GPS time as a reference should convert that to TAI by adding the fixed difference.\n GPS time is not supported for reasons of consistency across different positioning systems and applications."
[INFO] [stdout]       |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use an automatic link instead: `<https://en.wikipedia.org/wiki/International_Atomic_Time.>`
[INFO] [stdout]       |
[INFO] [stdout]       = note: bare URLs are not automatically turned into clickable links
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 44 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.10s
[INFO] running `Command { std: "docker" "inspect" "f7b6b3918a519d32e82e346787c4e700677e2943e6fd55be26233ff2992c7d6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f7b6b3918a519d32e82e346787c4e700677e2943e6fd55be26233ff2992c7d6a", kill_on_drop: false }`
[INFO] [stdout] f7b6b3918a519d32e82e346787c4e700677e2943e6fd55be26233ff2992c7d6a
