Skip to main content

TypeSupport

Trait TypeSupport 

Source
pub trait TypeSupport:
    'static
    + Send
    + Sync {
    // Required methods
    fn to_bytes(&self) -> Result<Vec<u8>, Error>;
    fn from_bytes(bytes: &[u8]) -> Result<Self, Error>
       where Self: Sized;
    fn type_name() -> &'static str;

    // Provided methods
    fn type_support() -> *const c_void { ... }
    fn type_hash() -> Result<String, Error> { ... }
}
Expand description

Trait for types that have type support information.

This allows the runtime to understand the structure of messages for serialization and deserialization.

§Serialization

The to_bytes and from_bytes methods provide CDR serialization:

  • For RCL (DDS-based): Uses rmw_serialize/rmw_deserialize internally
  • For native Zenoh: Uses serde with cdr-encoding crate

Required Methods§

Source

fn to_bytes(&self) -> Result<Vec<u8>, Error>

Serialize this message to CDR-encoded bytes.

§Implementation
  • rcl feature: Uses RMW serialization functions
  • zenoh feature: Uses serde + cdr-encoding crate
§Errors

Returns Error::CdrError if serialization fails.

Source

fn from_bytes(bytes: &[u8]) -> Result<Self, Error>
where Self: Sized,

Deserialize a message from CDR-encoded bytes.

§Implementation
  • rcl feature: Uses RMW deserialization functions
  • zenoh feature: Uses serde + cdr-encoding crate
§Errors

Returns Error::CdrError if deserialization fails.

Source

fn type_name() -> &'static str

Returns the type name in DDS format.

Example: "std_msgs::msg::dds_::String_"

This is used for Zenoh key expressions and type matching.

Provided Methods§

Source

fn type_support() -> *const c_void

Returns an opaque pointer to the type support structure.

The actual type of this pointer depends on the implementation (e.g., rosidl_message_type_support_t in RCL).

Source

fn type_hash() -> Result<String, Error>

Returns the RIHS01 type hash for this message type.

§Implementation
  • For RCL: Returns empty string (hash is handled by rosidl typesupport)
  • For Zenoh: Computes hash from TypeDescription

The hash format is: RIHS01_<64_character_hex_sha256>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl TypeSupport for GoalID

Source§

impl TypeSupport for oxidros_msg::common_interfaces::actionlib_msgs::msg::goal_status::GoalStatus

Source§

impl TypeSupport for oxidros_msg::common_interfaces::actionlib_msgs::msg::goal_status_array::GoalStatusArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::builtin_interfaces::msg::duration::Duration

Source§

impl TypeSupport for oxidros_msg::common_interfaces::builtin_interfaces::msg::time::Time

Source§

impl TypeSupport for DiagnosticArray

Source§

impl TypeSupport for DiagnosticStatus

Source§

impl TypeSupport for oxidros_msg::common_interfaces::diagnostic_msgs::msg::key_value::KeyValue

Source§

impl TypeSupport for AddDiagnostics_Request

Source§

impl TypeSupport for AddDiagnostics_Response

Source§

impl TypeSupport for SelfTest_Request

Source§

impl TypeSupport for SelfTest_Response

Source§

impl TypeSupport for Fibonacci_Feedback

Source§

impl TypeSupport for Fibonacci_FeedbackMessage

Available on non-crate feature rcl only.
Source§

impl TypeSupport for Fibonacci_GetResult_Request

Available on non-crate feature rcl only.
Source§

impl TypeSupport for Fibonacci_GetResult_Response

Available on non-crate feature rcl only.
Source§

impl TypeSupport for Fibonacci_Goal

Source§

impl TypeSupport for Fibonacci_Result

Source§

impl TypeSupport for Fibonacci_SendGoal_Request

Available on non-crate feature rcl only.
Source§

impl TypeSupport for Fibonacci_SendGoal_Response

Available on non-crate feature rcl only.
Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::bool::Bool

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::byte::Byte

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::byte_multi_array::ByteMultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::char::Char

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::empty::Empty

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::float32::Float32

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::float32_multi_array::Float32MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::float64::Float64

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::float64_multi_array::Float64MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::int8::Int8

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::int8_multi_array::Int8MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::int16::Int16

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::int16_multi_array::Int16MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::int32::Int32

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::int32_multi_array::Int32MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::int64::Int64

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::int64_multi_array::Int64MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::multi_array_dimension::MultiArrayDimension

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::multi_array_layout::MultiArrayLayout

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::string::String

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::u_int8::UInt8

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::u_int8_multi_array::UInt8MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::u_int16::UInt16

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::u_int16_multi_array::UInt16MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::u_int32::UInt32

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::u_int32_multi_array::UInt32MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::u_int64::UInt64

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::msg::u_int64_multi_array::UInt64MultiArray

Source§

impl TypeSupport for WString

Source§

impl TypeSupport for AddTwoInts_Request

Source§

impl TypeSupport for AddTwoInts_Response

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::srv::set_bool::SetBool_Request

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::srv::set_bool::SetBool_Response

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::srv::trigger::Trigger_Request

Source§

impl TypeSupport for oxidros_msg::common_interfaces::example_interfaces::srv::trigger::Trigger_Response

Source§

impl TypeSupport for Accel

Source§

impl TypeSupport for AccelStamped

Source§

impl TypeSupport for AccelWithCovariance

Source§

impl TypeSupport for AccelWithCovarianceStamped

Source§

impl TypeSupport for Inertia

Source§

impl TypeSupport for InertiaStamped

Source§

impl TypeSupport for Point32

Source§

impl TypeSupport for Point

Source§

impl TypeSupport for PointStamped

Source§

impl TypeSupport for Polygon

Source§

impl TypeSupport for PolygonInstance

Source§

impl TypeSupport for PolygonInstanceStamped

Source§

impl TypeSupport for PolygonStamped

Source§

impl TypeSupport for Pose2D

Source§

impl TypeSupport for Pose

Source§

impl TypeSupport for PoseArray

Source§

impl TypeSupport for PoseStamped

Source§

impl TypeSupport for PoseWithCovariance

Source§

impl TypeSupport for PoseWithCovarianceStamped

Source§

impl TypeSupport for Quaternion

Source§

impl TypeSupport for QuaternionStamped

Source§

impl TypeSupport for Transform

Source§

impl TypeSupport for TransformStamped

Source§

impl TypeSupport for Twist

Source§

impl TypeSupport for TwistStamped

Source§

impl TypeSupport for TwistWithCovariance

Source§

impl TypeSupport for TwistWithCovarianceStamped

Source§

impl TypeSupport for Vector3

Source§

impl TypeSupport for Vector3Stamped

Source§

impl TypeSupport for VelocityStamped

Source§

impl TypeSupport for Wrench

Source§

impl TypeSupport for WrenchStamped

Source§

impl TypeSupport for Goals

Source§

impl TypeSupport for GridCells

Source§

impl TypeSupport for MapMetaData

Source§

impl TypeSupport for OccupancyGrid

Source§

impl TypeSupport for Odometry

Source§

impl TypeSupport for Path

Source§

impl TypeSupport for GetMap_Request

Source§

impl TypeSupport for GetMap_Response

Source§

impl TypeSupport for GetPlan_Request

Source§

impl TypeSupport for GetPlan_Response

Source§

impl TypeSupport for LoadMap_Request

Source§

impl TypeSupport for LoadMap_Response

Source§

impl TypeSupport for SetMap_Request

Source§

impl TypeSupport for SetMap_Response

Source§

impl TypeSupport for BatteryState

Source§

impl TypeSupport for CameraInfo

Source§

impl TypeSupport for ChannelFloat32

Source§

impl TypeSupport for CompressedImage

Source§

impl TypeSupport for FluidPressure

Source§

impl TypeSupport for Illuminance

Source§

impl TypeSupport for Image

Source§

impl TypeSupport for Imu

Source§

impl TypeSupport for JointState

Source§

impl TypeSupport for Joy

Source§

impl TypeSupport for JoyFeedback

Source§

impl TypeSupport for JoyFeedbackArray

Source§

impl TypeSupport for LaserEcho

Source§

impl TypeSupport for LaserScan

Source§

impl TypeSupport for MagneticField

Source§

impl TypeSupport for MultiDOFJointState

Source§

impl TypeSupport for MultiEchoLaserScan

Source§

impl TypeSupport for NavSatFix

Source§

impl TypeSupport for NavSatStatus

Source§

impl TypeSupport for PointCloud2

Source§

impl TypeSupport for PointCloud

Source§

impl TypeSupport for PointField

Source§

impl TypeSupport for Range

Source§

impl TypeSupport for RegionOfInterest

Source§

impl TypeSupport for RelativeHumidity

Source§

impl TypeSupport for Temperature

Source§

impl TypeSupport for TimeReference

Source§

impl TypeSupport for SetCameraInfo_Request

Source§

impl TypeSupport for SetCameraInfo_Response

Source§

impl TypeSupport for Mesh

Source§

impl TypeSupport for MeshTriangle

Source§

impl TypeSupport for Plane

Source§

impl TypeSupport for SolidPrimitive

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::bool::Bool

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::byte::Byte

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::byte_multi_array::ByteMultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::char::Char

Source§

impl TypeSupport for ColorRGBA

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::empty::Empty

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::float32::Float32

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::float32_multi_array::Float32MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::float64::Float64

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::float64_multi_array::Float64MultiArray

Source§

impl TypeSupport for Header

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::int8::Int8

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::int8_multi_array::Int8MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::int16::Int16

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::int16_multi_array::Int16MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::int32::Int32

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::int32_multi_array::Int32MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::int64::Int64

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::int64_multi_array::Int64MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::multi_array_dimension::MultiArrayDimension

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::multi_array_layout::MultiArrayLayout

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::string::String

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::u_int8::UInt8

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::u_int8_multi_array::UInt8MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::u_int16::UInt16

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::u_int16_multi_array::UInt16MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::u_int32::UInt32

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::u_int32_multi_array::UInt32MultiArray

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::u_int64::UInt64

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_msgs::msg::u_int64_multi_array::UInt64MultiArray

Source§

impl TypeSupport for Empty_Request

Source§

impl TypeSupport for Empty_Response

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_srvs::srv::set_bool::SetBool_Request

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_srvs::srv::set_bool::SetBool_Response

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_srvs::srv::trigger::Trigger_Request

Source§

impl TypeSupport for oxidros_msg::common_interfaces::std_srvs::srv::trigger::Trigger_Response

Source§

impl TypeSupport for DisparityImage

Source§

impl TypeSupport for JointTrajectory

Source§

impl TypeSupport for JointTrajectoryPoint

Source§

impl TypeSupport for MultiDOFJointTrajectory

Source§

impl TypeSupport for MultiDOFJointTrajectoryPoint

Source§

impl TypeSupport for oxidros_msg::common_interfaces::unique_identifier_msgs::msg::uuid::UUID

Source§

impl TypeSupport for ImageMarker

Source§

impl TypeSupport for InteractiveMarker

Source§

impl TypeSupport for InteractiveMarkerControl

Source§

impl TypeSupport for InteractiveMarkerFeedback

Source§

impl TypeSupport for InteractiveMarkerInit

Source§

impl TypeSupport for InteractiveMarkerPose

Source§

impl TypeSupport for InteractiveMarkerUpdate

Source§

impl TypeSupport for Marker

Source§

impl TypeSupport for MarkerArray

Source§

impl TypeSupport for MenuEntry

Source§

impl TypeSupport for MeshFile

Source§

impl TypeSupport for UVCoordinate

Source§

impl TypeSupport for GetInteractiveMarkers_Request

Source§

impl TypeSupport for GetInteractiveMarkers_Response

Source§

impl TypeSupport for GoalInfo

Source§

impl TypeSupport for oxidros_msg::interfaces::action_msgs::msg::goal_status::GoalStatus

Source§

impl TypeSupport for oxidros_msg::interfaces::action_msgs::msg::goal_status_array::GoalStatusArray

Source§

impl TypeSupport for CancelGoal_Request

Source§

impl TypeSupport for CancelGoal_Response

Source§

impl TypeSupport for oxidros_msg::interfaces::builtin_interfaces::msg::duration::Duration

Source§

impl TypeSupport for oxidros_msg::interfaces::builtin_interfaces::msg::time::Time

Source§

impl TypeSupport for ListNodes_Request

Source§

impl TypeSupport for ListNodes_Response

Source§

impl TypeSupport for LoadNode_Request

Source§

impl TypeSupport for LoadNode_Response

Source§

impl TypeSupport for UnloadNode_Request

Source§

impl TypeSupport for UnloadNode_Response

Source§

impl TypeSupport for State

Source§

impl TypeSupport for Transition

Source§

impl TypeSupport for TransitionDescription

Source§

impl TypeSupport for TransitionEvent

Source§

impl TypeSupport for ChangeState_Request

Source§

impl TypeSupport for ChangeState_Response

Source§

impl TypeSupport for GetAvailableStates_Request

Source§

impl TypeSupport for GetAvailableStates_Response

Source§

impl TypeSupport for GetAvailableTransitions_Request

Source§

impl TypeSupport for GetAvailableTransitions_Response

Source§

impl TypeSupport for GetState_Request

Source§

impl TypeSupport for GetState_Response

Source§

impl TypeSupport for FloatingPointRange

Source§

impl TypeSupport for IntegerRange

Source§

impl TypeSupport for ListParametersResult

Source§

impl TypeSupport for Log

Source§

impl TypeSupport for LoggerLevel

Source§

impl TypeSupport for Parameter

Source§

impl TypeSupport for ParameterDescriptor

Source§

impl TypeSupport for ParameterEvent

Source§

impl TypeSupport for ParameterEventDescriptors

Source§

impl TypeSupport for ParameterType

Source§

impl TypeSupport for ParameterValue

Source§

impl TypeSupport for SetLoggerLevelsResult

Source§

impl TypeSupport for SetParametersResult

Source§

impl TypeSupport for DescribeParameters_Request

Source§

impl TypeSupport for DescribeParameters_Response

Source§

impl TypeSupport for GetLoggerLevels_Request

Source§

impl TypeSupport for GetLoggerLevels_Response

Source§

impl TypeSupport for GetParameterTypes_Request

Source§

impl TypeSupport for GetParameterTypes_Response

Source§

impl TypeSupport for GetParameters_Request

Source§

impl TypeSupport for GetParameters_Response

Source§

impl TypeSupport for ListParameters_Request

Source§

impl TypeSupport for ListParameters_Response

Source§

impl TypeSupport for SetLoggerLevels_Request

Source§

impl TypeSupport for SetLoggerLevels_Response

Source§

impl TypeSupport for SetParameters_Request

Source§

impl TypeSupport for SetParameters_Response

Source§

impl TypeSupport for SetParametersAtomically_Request

Source§

impl TypeSupport for SetParametersAtomically_Response

Source§

impl TypeSupport for Clock

Source§

impl TypeSupport for ServiceEventInfo

Source§

impl TypeSupport for MetricsMessage

Source§

impl TypeSupport for StatisticDataPoint

Source§

impl TypeSupport for StatisticDataType

Source§

impl TypeSupport for Field

Source§

impl TypeSupport for FieldType

Source§

impl TypeSupport for IndividualTypeDescription

Source§

impl TypeSupport for oxidros_msg::interfaces::type_description_interfaces::msg::key_value::KeyValue

Source§

impl TypeSupport for TypeDescription

Source§

impl TypeSupport for TypeSource

Source§

impl TypeSupport for GetTypeDescription_Request

Source§

impl TypeSupport for GetTypeDescription_Response

Source§

impl TypeSupport for oxidros_msg::interfaces::unique_identifier_msgs::msg::uuid::UUID

Source§

impl TypeSupport for oxidros_msg::ros2msg::unique_identifier_msgs::msg::uuid::UUID