ara_com/lib.rs
1//! `ara-com` — Core traits and async abstractions for Adaptive AUTOSAR communication in Rust.
2//!
3//! This crate defines the vocabulary types and async abstractions that all
4//! transport backends implement. It has **zero** transport dependencies; it is
5//! the stable API surface that user-generated code (from `cargo-arxml`) depends on.
6//!
7//! # Module overview
8//!
9//! | Module | Contents |
10//! |---|---|
11//! | [`types`] | Newtype wrappers for SOME/IP / AUTOSAR identifiers |
12//! | [`error`] | Unified [`AraComError`] type |
13//! | [`transport`] | [`Transport`] backend trait + serialization traits |
14//! | [`service`] | [`ServiceDefinition`] marker trait + [`ServiceHandle`] |
15//! | [`method`] | [`MethodConfig`] + [`MethodResult`] |
16//! | [`event`] | [`SubscriptionState`], [`EventConfig`], [`EventStream`] |
17//! | [`field`] | [`FieldConfig`] + getter/setter/notifier traits |
18//! | [`proxy`] | [`ProxyBase`] + [`Proxy`] trait |
19//! | [`skeleton`] | [`SkeletonBase`] + [`Skeleton`] trait |
20
21pub mod error;
22pub mod event;
23pub mod field;
24pub mod method;
25pub mod proxy;
26pub mod serialization;
27pub mod service;
28pub mod skeleton;
29pub mod transport;
30pub mod types;
31
32// --- Convenience re-exports ---
33
34pub use error::AraComError;
35pub use event::{EventConfig, EventStream, SubscriptionState};
36pub use field::FieldConfig;
37pub use method::{MethodConfig, MethodResult};
38pub use proxy::{Proxy, ProxyBase};
39pub use service::{AvailabilityHandler, ServiceDefinition, ServiceHandle, ServiceState};
40pub use skeleton::{Skeleton, SkeletonBase};
41pub use transport::{
42 AraDeserialize, AraSerialize, MessageHeader, MessageType, ReturnCode, Transport,
43};
44pub use types::{
45 EventGroupId, EventId, InstanceId, MajorVersion, MethodId, MinorVersion, ServiceId,
46 ServiceInstanceId,
47};