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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
//! ROS2 interface using DDS module
//!
//! # Examples
//!
//! ```
//! use rustdds::*;
//! use ros2_client::*;
//! use ros2_client::node_entities_info::NodeEntitiesInfo;
//!
//!
//! let mut ros_context = Context::new().unwrap();
//!
//!
//! let mut ros_node = ros_context.new_node(
//! "some_node_name",
//! "/some_namespace",
//! NodeOptions::new().enable_rosout(true),
//! ).unwrap();
//!
//! let some_topic = ros_node.create_topic(
//! "some_topic_name",
//! "NodeEntitiesInfo".to_string(),
//! &QosPolicies::builder().build() )
//! .unwrap();
//!
//! // declaring some writer that use non keyed types
//! let some_writer = ros_node
//! .create_publisher::<NodeEntitiesInfo>(&some_topic, None)
//! .unwrap();
//!
//! // Publisher and subscription implement [`mio::Evented`], so thay can be polled.
//! ```
#[macro_use]
extern crate lazy_static;
/// Some builtin datatypes needed for ROS2 communication
/// Some convenience topic infos for ROS2 communication
pub mod builtin_topics;
#[doc(hidden)]
pub mod context;
/// Some builtin interfaces for ROS2 communication
pub mod interfaces;
mod gid;
pub mod log;
pub mod message;
pub mod node_entities_info;
pub mod parameters;
pub mod participant_entities_info;
#[doc(hidden)]
pub mod pubsub;
pub mod service;
#[doc(hidden)]
pub(crate) mod node;
// Re-exports from crate root to simplify usage
#[doc(inline)]
pub use context::*;
#[doc(inline)]
pub use message::Message;
#[doc(inline)]
pub use node::*;
#[doc(inline)]
pub use pubsub::*;
#[doc(inline)]
pub use service::{Client, Server, Service};
/// Module for stuff we do not want to export from top level;
pub mod ros2 {
pub use rustdds::{Duration, Timestamp};
}