1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// SPDX-License-Identifier: Apache-2.0
// Copyright © 2025 Au-Zone Technologies. All Rights Reserved.
//! # EdgeFirst Middleware Schemas
//!
//! Zero-copy CDR1 Little-Endian message types for ROS 2 / Zenoh middleware.
//!
//! ## Architecture
//!
//! **CdrFixed types** — small, `Copy` structs with constant wire size (e.g.
//! `Time`, `Vector3`). Serialized with `cdr::encode_fixed` / `cdr::decode_fixed`.
//!
//! **Buffer-backed types** — generic `Type<B: AsRef<[u8]>>` wrappers that hold
//! a CDR byte buffer and a small offset table. Construction scans the buffer
//! once; field accessors are O(1). Use `Type::new(...)` to serialize and
//! `Type::from_cdr(buf)` to deserialize (zero-copy when `B = &[u8]`).
//!
//! ## Message sources
//!
//! * [common_interfaces](https://github.com/ros2/common_interfaces)
//! * [rcl_interfaces](https://github.com/ros2/rcl_interfaces)
//! * [foxglove schemas](https://github.com/foxglove/schemas/tree/main/ros_foxglove_msgs)
//! * [edgefirst schemas](https://github.com/EdgeFirstAI/schemas)
/// EdgeFirst custom perception messages.
/// Foxglove visualization messages.
/// ROS 2 geometry message types.
/// ROS 2 navigation message types.
/// ROS 2 sensor message types.
/// ROS 2 standard message types (Header, ColorRGBA).
/// ROS 2 builtin interfaces (Time, Duration).
/// ROS 2 rosgraph messages (Clock).
/// ROS 2 service header for Zenoh RPC.
/// Zero-copy CDR serialization infrastructure.
/// Schema registry for runtime schema name lookup.
/// C FFI bindings.