rustdds 0.3.0

Rust DDS implementation with RTPS
Documentation
use speedy::{Readable, Writable};
use serde::{Serialize, Deserialize};

#[derive(Debug, PartialEq, Eq, Readable, Writable, Copy, Clone, Serialize, Deserialize)]
pub struct ParameterId {
  value: u16,
}

impl ParameterId {
  pub const PID_PAD: ParameterId = ParameterId { value: 0x0000 };
  pub const PID_SENTINEL: ParameterId = ParameterId { value: 0x0001 };
  pub const PID_USER_DATA: ParameterId = ParameterId { value: 0x002c };
  pub const PID_TOPIC_NAME: ParameterId = ParameterId { value: 0x0005 };
  pub const PID_TYPE_NAME: ParameterId = ParameterId { value: 0x0007 };
  pub const PID_GROUP_DATA: ParameterId = ParameterId { value: 0x002d };
  pub const PID_TOPIC_DATA: ParameterId = ParameterId { value: 0x002e };
  pub const PID_DURABILITY: ParameterId = ParameterId { value: 0x001d };
  pub const PID_DURABILITY_SERVICE: ParameterId = ParameterId { value: 0x001e };
  pub const PID_DEADLINE: ParameterId = ParameterId { value: 0x0023 };
  pub const PID_LATENCY_BUDGET: ParameterId = ParameterId { value: 0x0027 };
  pub const PID_LIVELINESS: ParameterId = ParameterId { value: 0x001b };
  pub const PID_RELIABILITY: ParameterId = ParameterId { value: 0x001a };
  pub const PID_LIFESPAN: ParameterId = ParameterId { value: 0x002b };
  pub const PID_DESTINATION_ORDER: ParameterId = ParameterId { value: 0x0025 };
  pub const PID_HISTORY: ParameterId = ParameterId { value: 0x0040 };
  pub const PID_RESOURCE_LIMITS: ParameterId = ParameterId { value: 0x0041 };
  pub const PID_OWNERSHIP: ParameterId = ParameterId { value: 0x001f };
  pub const PID_OWNERSHIP_STRENGTH: ParameterId = ParameterId { value: 0x0006 };
  pub const PID_PRESENTATION: ParameterId = ParameterId { value: 0x0021 };
  pub const PID_PARTITION: ParameterId = ParameterId { value: 0x0029 };
  pub const PID_TIME_BASED_FILTER: ParameterId = ParameterId { value: 0x0004 };
  pub const PID_TRANSPORT_PRIO: ParameterId = ParameterId { value: 0x0049 };
  pub const PID_PROTOCOL_VERSION: ParameterId = ParameterId { value: 0x0015 };
  pub const PID_VENDOR_ID: ParameterId = ParameterId { value: 0x0016 };
  pub const PID_UNICAST_LOCATOR: ParameterId = ParameterId { value: 0x002f };
  pub const PID_MULTICAST_LOCATOR: ParameterId = ParameterId { value: 0x0030 };
  pub const PID_MULTICAST_IPADDRESS: ParameterId = ParameterId { value: 0x0011 };
  pub const PID_DEFAULT_UNICAST_LOCATOR: ParameterId = ParameterId { value: 0x0031 };
  pub const PID_DEFAULT_MULTICAST_LOCATOR: ParameterId = ParameterId { value: 0x0048 };
  pub const PID_METATRAFFIC_UNICAST_LOCATOR: ParameterId = ParameterId { value: 0x0032 };
  pub const PID_METATRAFFIC_MULTICAST_LOCATOR: ParameterId = ParameterId { value: 0x0033 };
  pub const PID_DEFAULT_UNICAST_IPADDRESS: ParameterId = ParameterId { value: 0x000c };
  pub const PID_DEFAULT_UNICAST_PORT: ParameterId = ParameterId { value: 0x000e };
  pub const PID_METATRAFFIC_UNICAST_IPADDRESS: ParameterId = ParameterId { value: 0x0045 };
  pub const PID_METATRAFFIC_UNICAST_PORT: ParameterId = ParameterId { value: 0x000d };
  pub const PID_METATRAFFIC_MULTICAST_IPADDRESS: ParameterId = ParameterId { value: 0x000b };
  pub const PID_METATRAFFIC_MULTICAST_PORT: ParameterId = ParameterId { value: 0x0046 };
  pub const PID_EXPECTS_INLINE_QOS: ParameterId = ParameterId { value: 0x0043 };
  pub const PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT: ParameterId = ParameterId { value: 0x0034 };
  pub const PID_PARTICIPANT_BUILTIN_ENDPOINTS: ParameterId = ParameterId { value: 0x0044 };
  pub const PID_PARTICIPANT_LEASE_DURATION: ParameterId = ParameterId { value: 0x0002 };
  pub const PID_CONTENT_FILTER_PROPERTY: ParameterId = ParameterId { value: 0x0035 };
  pub const PID_PARTICIPANT_GUID: ParameterId = ParameterId { value: 0x0050 };
  pub const PID_GROUP_GUID: ParameterId = ParameterId { value: 0x0052 };
  pub const PID_GROUP_ENTITYID: ParameterId = ParameterId { value: 0x0053 };
  pub const PID_BUILTIN_ENDPOINT_SET: ParameterId = ParameterId { value: 0x0058 };
  pub const PID_ENDPOINT_GUID: ParameterId = ParameterId { value: 0x005a };
  pub const PID_BUILTIN_ENDPOINT_QOS: ParameterId = ParameterId { value: 0x0077 };
  pub const PID_PROPERTY_LIST: ParameterId = ParameterId { value: 0x0059 };
  pub const PID_TYPE_MAX_SIZE_SERIALIZED: ParameterId = ParameterId { value: 0x0060 };
  pub const PID_ENTITY_NAME: ParameterId = ParameterId { value: 0x0062 };
  pub const PID_KEY_HASH: ParameterId = ParameterId { value: 0x0070 };
  pub const PID_STATUS_INFO: ParameterId = ParameterId { value: 0x0071 };
}

#[cfg(test)]
mod tests {
  use super::*;

  serialization_test!( type = ParameterId,
  {
      pid_pad,
      ParameterId::PID_PAD,
      le = [0x00, 0x00],
      be = [0x00, 0x00]
  },
  {
      pid_sentinel,
      ParameterId::PID_SENTINEL,
      le = [0x01, 0x00],
      be = [0x00, 0x01]
  },
  {
      pid_user_data,
      ParameterId::PID_USER_DATA,
      le = [0x2c, 0x00],
      be = [0x00, 0x2c]
  },
  {
      pid_topic_name,
      ParameterId::PID_TOPIC_NAME,
      le = [0x05, 0x00],
      be = [0x00, 0x05]
  },
  {
      pid_type_name,
      ParameterId::PID_TYPE_NAME,
      le = [0x07, 0x00],
      be = [0x00, 0x07]
  },
  {
      pid_group_data,
      ParameterId::PID_GROUP_DATA,
      le = [0x2d, 0x00],
      be = [0x00, 0x2d]
  },
  {
      pid_topic_data,
      ParameterId::PID_TOPIC_DATA,
      le = [0x2e, 0x00],
      be = [0x00, 0x2e]
  },
  {
      pid_durability,
      ParameterId::PID_DURABILITY,
      le = [0x1d, 0x00],
      be = [0x00, 0x1d]
  },
  {
      pid_durability_service,
      ParameterId::PID_DURABILITY_SERVICE,
      le = [0x1e, 0x00],
      be = [0x00, 0x1e]
  },
  {
      pid_deadline,
      ParameterId::PID_DEADLINE,
      le = [0x23, 0x00],
      be = [0x00, 0x23]
  },
  {
      pid_latency_budget,
      ParameterId::PID_LATENCY_BUDGET,
      le = [0x27, 0x00],
      be = [0x00, 0x27]
  },
  {
      pid_liveliness,
      ParameterId::PID_LIVELINESS,
      le = [0x1b, 0x00],
      be = [0x00, 0x1b]
  },
  {
      pid_reliability,
      ParameterId::PID_RELIABILITY,
      le = [0x1a, 0x00],
      be = [0x00, 0x1a]
  },
  {
      pid_lifespan,
      ParameterId::PID_LIFESPAN,
      le = [0x2b, 0x00],
      be = [0x00, 0x2b]
  },
  {
      pid_destination_order,
      ParameterId::PID_DESTINATION_ORDER,
      le = [0x25, 0x00],
      be = [0x00, 0x25]
  },
  {
      pid_history,
      ParameterId::PID_HISTORY,
      le = [0x40, 0x00],
      be = [0x00, 0x40]
  },
  {
      pid_resource_limits,
      ParameterId::PID_RESOURCE_LIMITS,
      le = [0x41, 0x00],
      be = [0x00, 0x41]
  },
  {
      pid_ownership,
      ParameterId::PID_OWNERSHIP,
      le = [0x1f, 0x00],
      be = [0x00, 0x1f]
  },
  {
      pid_ownership_strength,
      ParameterId::PID_OWNERSHIP_STRENGTH,
      le = [0x06, 0x00],
      be = [0x00, 0x06]
  },
  {
      pid_presentation,
      ParameterId::PID_PRESENTATION,
      le = [0x21, 0x00],
      be = [0x00, 0x21]
  },
  {
      pid_partition,
      ParameterId::PID_PARTITION,
      le = [0x29, 0x00],
      be = [0x00, 0x29]
  },
  {
      pid_time_based_filter,
      ParameterId::PID_TIME_BASED_FILTER,
      le = [0x04, 0x00],
      be = [0x00, 0x04]
  },
  {
      pid_transport_prio,
      ParameterId::PID_TRANSPORT_PRIO,
      le = [0x49, 0x00],
      be = [0x00, 0x49]
  },
  {
      pid_protocol_version,
      ParameterId::PID_PROTOCOL_VERSION,
      le = [0x15, 0x00],
      be = [0x00, 0x15]
  },
  {
      pid_vendor_id,
      ParameterId::PID_VENDOR_ID,
      le = [0x16, 0x00],
      be = [0x00, 0x16]
  },
  {
      pid_unicast_locator,
      ParameterId::PID_UNICAST_LOCATOR,
      le = [0x2f, 0x00],
      be = [0x00, 0x2f]
  },
  {
      pid_multicast_locator,
      ParameterId::PID_MULTICAST_LOCATOR,
      le = [0x30, 0x00],
      be = [0x00, 0x30]
  },
  {
      pid_multicast_ipaddress,
      ParameterId::PID_MULTICAST_IPADDRESS,
      le = [0x11, 0x00],
      be = [0x00, 0x11]
  },
  {
      pid_default_unicast_locator,
      ParameterId::PID_DEFAULT_UNICAST_LOCATOR,
      le = [0x31, 0x00],
      be = [0x00, 0x31]
  },
  {
      pid_default_multicast_locator,
      ParameterId::PID_DEFAULT_MULTICAST_LOCATOR,
      le = [0x48, 0x00],
      be = [0x00, 0x48]
  },
  {
      pid_metatraffic_unicast_locator,
      ParameterId::PID_METATRAFFIC_UNICAST_LOCATOR,
      le = [0x32, 0x00],
      be = [0x00, 0x32]
  },
  {
      pid_metatraffic_multicast_locator,
      ParameterId::PID_METATRAFFIC_MULTICAST_LOCATOR,
      le = [0x33, 0x00],
      be = [0x00, 0x33]
  },
  {
      pid_default_unicast_ipaddress,
      ParameterId::PID_DEFAULT_UNICAST_IPADDRESS,
      le = [0x0c, 0x00],
      be = [0x00, 0x0c]
  },
  {
      pid_default_unicast_port,
      ParameterId::PID_DEFAULT_UNICAST_PORT,
      le = [0x0e, 0x00],
      be = [0x00, 0x0e]
  },
  {
      pid_metatraffic_unicast_ipaddress,
      ParameterId::PID_METATRAFFIC_UNICAST_IPADDRESS,
      le = [0x45, 0x00],
      be = [0x00, 0x45]
  },
  {
      pid_metatraffic_unicast_port,
      ParameterId::PID_METATRAFFIC_UNICAST_PORT,
      le = [0x0d, 0x00],
      be = [0x00, 0x0d]
  },
  {
      pid_metatraffic_multicast_ipaddress,
      ParameterId::PID_METATRAFFIC_MULTICAST_IPADDRESS,
      le = [0x0b, 0x00],
      be = [0x00, 0x0b]
  },
  {
      pid_metatraffic_multicast_port,
      ParameterId::PID_METATRAFFIC_MULTICAST_PORT,
      le = [0x46, 0x00],
      be = [0x00, 0x46]
  },
  {
      pid_expects_inline_qos,
      ParameterId::PID_EXPECTS_INLINE_QOS,
      le = [0x43, 0x00],
      be = [0x00, 0x43]
  },
  {
      pid_participant_manual_liveliness_count,
      ParameterId::PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT,
      le = [0x34, 0x00],
      be = [0x00, 0x34]
  },
  {
      pid_participant_builtin_endpoints,
      ParameterId::PID_PARTICIPANT_BUILTIN_ENDPOINTS,
      le = [0x44, 0x00],
      be = [0x00, 0x44]
  },
  {
      pid_participant_lease_duration,
      ParameterId::PID_PARTICIPANT_LEASE_DURATION,
      le = [0x02, 0x00],
      be = [0x00, 0x02]
  },
  {
      pid_content_filter_property,
      ParameterId::PID_CONTENT_FILTER_PROPERTY,
      le = [0x35, 0x00],
      be = [0x00, 0x35]
  },
  {
      pid_participant_guid,
      ParameterId::PID_PARTICIPANT_GUID,
      le = [0x50, 0x00],
      be = [0x00, 0x50]
  },
  {
      pid_group_guid,
      ParameterId::PID_GROUP_GUID,
      le = [0x52, 0x00],
      be = [0x00, 0x52]
  },
  {
      pid_group_entityid,
      ParameterId::PID_GROUP_ENTITYID,
      le = [0x53, 0x00],
      be = [0x00, 0x53]
  },
  {
      pid_builtin_endpoint_set,
      ParameterId::PID_BUILTIN_ENDPOINT_SET,
      le = [0x58, 0x00],
      be = [0x00, 0x58]
  },
  {
      pid_property_list,
      ParameterId::PID_PROPERTY_LIST,
      le = [0x59, 0x00],
      be = [0x00, 0x59]
  },
  {
      pid_type_max_size_serialized,
      ParameterId::PID_TYPE_MAX_SIZE_SERIALIZED,
      le = [0x60, 0x00],
      be = [0x00, 0x60]
  },
  {
      pid_entity_name,
      ParameterId::PID_ENTITY_NAME,
      le = [0x62, 0x00],
      be = [0x00, 0x62]
  },
  {
      pid_key_hash,
      ParameterId::PID_KEY_HASH,
      le = [0x70, 0x00],
      be = [0x00, 0x70]
  },
  {
      pid_status_info,
      ParameterId::PID_STATUS_INFO,
      le = [0x71, 0x00],
      be = [0x00, 0x71]
  });
}