Skip to main content

cyclonedds/
lib.rs

1#![cfg_attr(all(feature = "no_std", not(feature = "std")), no_std)]
2#![allow(missing_docs)]
3
4extern crate alloc;
5
6/// Safe, idiomatic Rust bindings for Eclipse CycloneDDS.
7pub mod no_std_types;
8
9#[cfg(not(feature = "std"))]
10pub use no_std_types::*;
11
12#[cfg(feature = "std")]
13pub use cyclonedds_derive::DdsBitmask as DdsBitmaskDerive;
14#[cfg(feature = "std")]
15pub use cyclonedds_derive::DdsEnum as DdsEnumDerive;
16#[cfg(feature = "std")]
17pub use cyclonedds_derive::DdsType as DdsTypeDerive;
18#[cfg(feature = "std")]
19pub use cyclonedds_derive::DdsUnion as DdsUnionDerive;
20
21#[cfg(all(feature = "async", feature = "std"))]
22#[allow(missing_docs)]
23pub mod r#async;
24#[cfg(feature = "std")]
25#[allow(missing_docs)]
26mod builtin;
27#[cfg(feature = "std")]
28#[allow(missing_docs)]
29mod content_filtered_topic;
30#[cfg(feature = "std")]
31#[allow(missing_docs)]
32mod dynamic_type;
33#[cfg(feature = "std")]
34#[allow(missing_docs)]
35mod dynamic_value;
36#[cfg(feature = "std")]
37#[allow(missing_docs)]
38mod entity;
39#[allow(missing_docs)]
40mod error;
41#[cfg(feature = "std")]
42#[allow(missing_docs)]
43mod listener;
44#[cfg(all(any(feature = "opentelemetry", feature = "tokio-console"), feature = "std"))]
45pub mod observability;
46#[cfg(feature = "std")]
47pub mod log;
48#[cfg(feature = "std")]
49mod participant;
50#[cfg(feature = "std")]
51mod participant_pool;
52#[cfg(feature = "std")]
53mod publisher;
54#[cfg(feature = "std")]
55mod qos;
56#[cfg(feature = "std")]
57mod request_reply;
58#[cfg(feature = "std")]
59mod qos_provider;
60#[cfg(feature = "std")]
61mod reader;
62#[cfg(feature = "std")]
63pub mod sample;
64#[cfg(all(feature = "serde", feature = "std"))]
65mod serde_sample;
66#[cfg(all(feature = "security", feature = "std"))]
67pub mod security;
68#[cfg(feature = "std")]
69mod sequence;
70#[cfg(feature = "std")]
71mod serialization;
72#[cfg(feature = "std")]
73mod statistics;
74#[cfg(feature = "std")]
75mod status;
76#[cfg(feature = "std")]
77mod string;
78#[cfg(feature = "std")]
79mod subscriber;
80#[cfg(feature = "std")]
81mod topic;
82#[cfg(feature = "std")]
83mod type_discovery;
84#[cfg(feature = "std")]
85mod waitset;
86#[cfg(feature = "std")]
87#[doc(hidden)]
88pub mod write_arena;
89#[cfg(feature = "std")]
90mod writer;
91#[cfg(feature = "std")]
92mod xtypes;
93
94#[cfg(feature = "std")]
95pub use builtin::{
96    BuiltinEndpointSample, BuiltinParticipantSample, BuiltinTopicSample,
97    BUILTIN_TOPIC_DCPSPARTICIPANT, BUILTIN_TOPIC_DCPSPUBLICATION, BUILTIN_TOPIC_DCPSSUBSCRIPTION,
98    BUILTIN_TOPIC_DCPSTOPIC, DDS_MIN_PSEUDO_HANDLE,
99};
100#[cfg(feature = "std")]
101pub use content_filtered_topic::{ContentFilteredTopic, FilterParams, TopicFilterExt, TopicParameterizedFilterExt};
102#[cfg(feature = "std")]
103pub use dynamic_type::{
104    DynamicEnumLiteralValue, DynamicMemberBuilder, DynamicPrimitiveKind, DynamicType,
105    DynamicTypeAutoId, DynamicTypeBuilder, DynamicTypeExtensibility, DynamicTypeSpec,
106};
107#[cfg(feature = "std")]
108pub use dynamic_value::{
109    DynamicBitmaskFieldSchema, DynamicData, DynamicEnumLiteralSchema, DynamicFieldSchema,
110    DynamicTypeSchema, DynamicUnionCaseSchema, DynamicValue,
111};
112#[cfg(feature = "std")]
113pub use entity::DdsEntity;
114#[cfg(feature = "std")]
115#[cfg(feature = "std")]
116pub use error::{err_file_id, err_line, err_nr};
117pub use error::{DdsError, DdsResult};
118#[cfg(feature = "std")]
119pub use listener::{Listener, ListenerBuilder};
120#[cfg(feature = "std")]
121pub use participant::DomainParticipant;
122#[cfg(feature = "std")]
123pub use publisher::Publisher;
124#[cfg(feature = "std")]
125pub use qos::{
126    DataRepresentation, DestinationOrder, Durability, DurabilityServicePolicy, History,
127    IgnoreLocalKind, Liveliness, Ownership, PresentationAccessScope, PresentationPolicy, Qos,
128    QosBuilder, ReaderDataLifecyclePolicy, Reliability, TypeConsistency, TypeConsistencyPolicy,
129};
130#[cfg(feature = "std")]
131pub use participant_pool::{DiscoveredParticipant, DiscoveredTopic, ParticipantPool};
132#[cfg(feature = "std")]
133pub use qos_provider::{QosKind, QosProvider};
134#[cfg(feature = "std")]
135pub use request_reply::{Replier, RequestReply, Requester};
136#[cfg(feature = "std")]
137pub use reader::DataReader;
138#[cfg(feature = "std")]
139pub use sample::{Loan, Sample};
140#[cfg(all(feature = "serde", feature = "std"))]
141pub use serde_sample::SerdeSample;
142#[cfg(all(feature = "security", feature = "std"))]
143pub use security::SecurityConfig;
144#[cfg(feature = "std")]
145pub use sequence::{DdsBoundedSequence, DdsSequence, DdsSequenceElement};
146#[cfg(feature = "std")]
147pub use serialization::{CdrDeserializer, CdrEncoding, CdrSample, CdrSerializer};
148#[cfg(feature = "std")]
149pub use statistics::{StatisticEntryRef, StatisticKind, StatisticValue, Statistics};
150#[cfg(feature = "std")]
151pub use status::{
152    EntityStatus, InconsistentTopicStatus, LivelinessChangedStatus, LivelinessLostStatus,
153    OfferedDeadlineMissedStatus, OfferedIncompatibleQosStatus, PublicationMatchedStatus,
154    RequestedDeadlineMissedStatus, RequestedIncompatibleQosStatus, SampleLostStatus,
155    SampleRejectedReason, SampleRejectedStatus, StatusExt, SubscriptionMatchedStatus, STATUS_ALL,
156    STATUS_DATA_AVAILABLE, STATUS_DATA_ON_READERS, STATUS_INCONSISTENT_TOPIC,
157    STATUS_LIVELINESS_CHANGED, STATUS_LIVELINESS_LOST, STATUS_OFFERED_DEADLINE_MISSED,
158    STATUS_OFFERED_INCOMPATIBLE_QOS, STATUS_PUBLICATION_MATCHED, STATUS_REQUESTED_DEADLINE_MISSED,
159    STATUS_REQUESTED_INCOMPATIBLE_QOS, STATUS_SAMPLE_LOST, STATUS_SAMPLE_REJECTED,
160    STATUS_SUBSCRIPTION_MATCHED,
161};
162#[cfg(feature = "std")]
163pub use string::DdsString;
164#[cfg(feature = "std")]
165pub use subscriber::Subscriber;
166#[cfg(feature = "std")]
167pub use topic::{
168    adr, adr_bst, adr_key, rebase_ops, DdsEnumType, DdsType, DdsUnionType, DiscriminantType,
169    KeyDescriptor, Topic, TopicKeyDescriptor, UntypedTopic, DDS_OP_MASK_CONST,
170    DDS_OP_SUBTYPE_MASK_CONST, DDS_OP_TYPE_MASK_CONST, OP_ADR, OP_DLC, OP_FLAG_EXT, OP_FLAG_FP,
171    OP_FLAG_KEY, OP_FLAG_MU, OP_FLAG_OPT, OP_FLAG_SGN, OP_FLAG_SZ_SHIFT, OP_JEQ4, OP_KOF, OP_MID,
172    OP_RTS, SUBTYPE_1BY, SUBTYPE_2BY, SUBTYPE_4BY, SUBTYPE_8BY, SUBTYPE_BSQ, SUBTYPE_BST,
173    SUBTYPE_ENU, SUBTYPE_SEQ, SUBTYPE_STU, SUBTYPE_STR, TYPE_1BY, TYPE_2BY, TYPE_4BY, TYPE_8BY,
174    TYPE_ARR, TYPE_BSQ, TYPE_BST, TYPE_ENU, TYPE_EXT, TYPE_SEQ, TYPE_STR, TYPE_UNI,
175};
176#[cfg(feature = "std")]
177pub use type_discovery::{
178    cdr_to_dynamic_data, discover_all_publication_types, discover_all_subscription_types,
179    discover_type_from_endpoint, discover_type_from_publication, discover_type_from_subscription,
180    discover_type_from_type_info, dynamic_data_to_cdr, DiscoveredType,
181};
182#[cfg(feature = "std")]
183pub use waitset::{set_active_qc, GuardCondition, QueryCondition, ReadCondition, WaitSet};
184#[cfg(feature = "std")]
185pub use writer::{DataWriter, WriteLoan};
186#[cfg(feature = "std")]
187pub use xtypes::{
188    FindScope, MatchedEndpoint, MemberDescriptor, OwnedSertype, OwnedTypeId, SertypeHandle,
189    TopicDescriptor, TypeDescriptor, TypeExtensibility, TypeIdKind, TypeIdRef, TypeIncludeDeps,
190    TypeInfo, TypeKind, TypeObject,
191};