transforms_io 0.1.0

IO layer for the transforms crate with ROS2 and Minot.
Documentation
//! ROS2 TF2 IO layer using the transforms crate.
//!
//! This crate provides message handling for the middleware-independent
//! `transforms` crate. It supports multiple backends:
//!
//! - `r2r` - Rust bindings to ROS2 C libraries
//! - `ros2-client` - Pure Rust ROS2 client
//! - `mt-pubsub` - Minot pub/sub system
//!
//! # Example
//!
//! ```ignore
//! use transforms_io::TfListener;
//!
//! // Create listener (backend-specific)
//! let listener = TfListener::new(&mut node);
//!
//! // Lookup transform
//! let tf = listener.lookup_transform("base_link", "sensor", time)?;
//! ```

#![deny(unsafe_code)]

pub mod convert;
pub mod error;

#[cfg(feature = "r2r")]
pub mod r2r_backend;

#[cfg(feature = "ros2-client")]
pub mod ros2_client_backend;

#[cfg(feature = "mt-pubsub")]
pub mod mt_pubsub_backend;

// Re-export transforms types for convenience
pub use error::TfError;
pub use transforms::geometry::{Quaternion, Transform, Vector3};
pub use transforms::time::Timestamp;
pub use transforms::Registry;

/// Default buffer duration for TF listeners (10 seconds).
/// This matches the default used by ROS2 tf2.
pub const DEFAULT_BUFFER_DURATION_SECS: u64 = 10;