Skip to main content

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 spvirit_encode;
12pub mod spvirit_state;
13pub mod spvd_decode;
14pub mod spvd_encode;
15
16// --- Re-exports: PVA wire-format decode types ---
17pub use epics_decode::{
18    decode_string, PvaCommands, PvaHeader, PvaPacket, PvaPacketCommand, PvaStatus,
19};
20
21// --- Re-exports: PVA wire-format encode helpers ---
22pub use spvirit_encode::{encode_control_message, encode_header, format_pva_address, ip_from_bytes, ip_to_bytes};
23
24// --- Re-exports: connection state tracking ---
25pub use spvirit_state::{ConnectionKey, PvaStateConfig, PvaStateStats, PvaStateTracker};
26
27// --- Re-exports: pvData structure decode ---
28pub use spvd_decode::{DecodedValue, FieldDesc, FieldType, PvdDecoder, StructureDesc, TypeCode};
29
30// --- Re-exports: pvData structure encode ---
31pub use spvd_encode::encode_structure_desc;
32
33// --- Re-export the types crate for convenience ---
34pub use spvirit_types;