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 error;
12pub mod monitor;
13pub mod segment;
14pub mod spvd_decode;
15pub mod spvd_encode;
16pub mod spvirit_encode;
17pub mod spvirit_state;
18
19// --- Re-exports: PVA wire-format decode types ---
20pub use epics_decode::{
21    PvaCommands, PvaHeader, PvaPacket, PvaPacketCommand, PvaStatus, decode_string,
22};
23
24// --- Re-exports: decode errors ---
25pub use error::{DecodeError, DecodeResult};
26
27// --- Re-exports: monitor deltas ---
28pub use epics_decode::DecodeMode;
29pub use monitor::{MonitorLayout, MonitorUpdate};
30
31// --- Re-exports: segmentation ---
32pub use segment::{DEFAULT_MAX_MESSAGE_BYTES, SegmentOutcome, SegmentReassembler};
33
34// --- Re-exports: PVA wire-format encode helpers ---
35pub use spvirit_encode::{
36    encode_control_message, encode_header, format_pva_address, ip_from_bytes, ip_to_bytes,
37};
38
39// --- Re-exports: connection state tracking ---
40pub use spvirit_state::{ConnectionKey, PvaStateConfig, PvaStateStats, PvaStateTracker};
41
42// --- Re-exports: pvData structure decode ---
43pub use spvd_decode::{
44    DecodeLimits, DecodedValue, FieldDesc, FieldType, PvdDecoder, StructureDesc, TypeCode,
45};
46
47// --- Re-exports: pvData structure encode ---
48pub use spvd_encode::{encode_decoded_value, encode_pv_request, encode_structure_desc};
49
50// --- Re-export the types crate for convenience ---
51pub use spvirit_types;