#[repr(C)]pub struct rmw_byte_span_t {
pub data: *const u8,
pub len: usize,
}Expand description
Global identifier for a publisher — upstream rmw_gid_t, field for field.
Phase 376 W4. Mirrors upstream exactly, including the 24-byte width and the
implementation_identifier. The identifier matters MORE here than upstream:
nros_rmw_cffi_register_named admits several backends in one image, so two
gids are comparable only when it matches.
Comparison is over the whole array, so a producer MUST zero-pad an identifier shorter than 24 bytes rather than leave the tail undefined — otherwise two gids naming the same entity compare unequal on stack garbage.
One type and one value. A gid obtained from a take
(rmw_message_info_t::publisher_gid) and one obtained from
get_gid_for_publisher are the same width (the phase-467 RMW gap-closure
design study’s Q1(a)) and, since issue 1495, produced from ONE source on
every backend that produces either: Cyclone’s writer GUID on both sides
(take_with_info); zenoh’s XXH3-128 of the entity’s liveliness keyexpr,
which is rmw_zenoh_cpp’s own derivation and so also the gid a stock
graph query prints for the entity. /
/* Bytes to READ — phase-406 W2.
len is a FACT: how many bytes exist. Nothing is written through this, and
const says so — publish handing a backend a mutable pointer is an
invitation.
PASSED BY VALUE. Two words, and there is nothing to report back.
Fields§
§data: *const u8§len: usizeTrait Implementations§
Source§impl Clone for rmw_byte_span_t
impl Clone for rmw_byte_span_t
Source§fn clone(&self) -> rmw_byte_span_t
fn clone(&self) -> rmw_byte_span_t
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more