actr_protocol/
lib.rs

1#![allow(deprecated)]
2//! # Actor-RTC Protocol, Types, and URI Parsing
3//!
4//! This crate contains the unified protocol definitions for the Actor-RTC framework.
5//! Its primary role is to provide the raw, generated Protobuf types and essential,
6//! stateless utilities for handling those types (e.g., ID and URI formatting).
7//!
8//! It strictly adheres to its role as a data definition layer and does not contain
9//! higher-level traits, business logic, or runtime-specific implementations.
10
11// Include generated protobuf code from prost
12pub mod generated {
13    pub mod actr {
14        include!(concat!(env!("OUT_DIR"), "/actr.rs"));
15    }
16    pub mod signaling {
17        include!(concat!(env!("OUT_DIR"), "/signaling.rs"));
18    }
19    pub mod webrtc {
20        include!(concat!(env!("OUT_DIR"), "/webrtc.rs"));
21    }
22}
23
24// Re-export all generated types at the crate root for convenience
25pub use generated::actr::*;
26pub use generated::signaling::*;
27pub use generated::webrtc::*;
28
29// Stateless, self-contained extensions and utilities
30pub mod actr_ext;
31pub mod error;
32pub mod message;
33pub mod name;
34pub mod turn;
35pub mod uri;
36
37// Re-export key utilities for convenience
38pub use actr_ext::*;
39pub use error::*;
40pub use message::RpcRequest;
41pub use name::*;
42
43// Re-export prost and prost_types for downstream crates
44// This ensures a single source of truth for protobuf dependencies
45pub use prost;
46pub use prost_types;
47
48#[cfg(feature = "uniffi")]
49uniffi::setup_scaffolding!();