spvirit_codec/lib.rs
1//! PVAccess protocol encode/decode and connection state tracking.
2//!
3//! This crate provides the low-level PVA wire-format codec (encode + decode),
4//! PVD (pvData) structure codec, and PVA connection state tracking.
5//!
6//! Commonly used types are re-exported at the crate root for convenience.
7//! The full module paths remain available for less common items.
8
9pub mod encode_common;
10pub mod epics_decode;
11pub mod spvd_decode;
12pub mod spvd_encode;
13pub mod spvirit_encode;
14pub mod spvirit_state;
15
16// --- Re-exports: PVA wire-format decode types ---
17pub use epics_decode::{
18 PvaCommands, PvaHeader, PvaPacket, PvaPacketCommand, PvaStatus, decode_string,
19};
20
21// --- Re-exports: PVA wire-format encode helpers ---
22pub use spvirit_encode::{
23 encode_control_message, encode_header, format_pva_address, ip_from_bytes, ip_to_bytes,
24};
25
26// --- Re-exports: connection state tracking ---
27pub use spvirit_state::{ConnectionKey, PvaStateConfig, PvaStateStats, PvaStateTracker};
28
29// --- Re-exports: pvData structure decode ---
30pub use spvd_decode::{DecodedValue, FieldDesc, FieldType, PvdDecoder, StructureDesc, TypeCode};
31
32// --- Re-exports: pvData structure encode ---
33pub use spvd_encode::{encode_decoded_value, encode_pv_request, encode_structure_desc};
34
35// --- Re-export the types crate for convenience ---
36pub use spvirit_types;