pragma_common/
lib.rs

1//! pragma-common
2//! Main types used through our rust projects at Pragma.
3// Entries retrieved through different markets.
4pub mod entries;
5
6// Web3 types
7pub mod web3;
8
9// Telemetry init through OTEL
10#[cfg(feature = "telemetry")]
11pub mod telemetry;
12
13// Pair
14pub mod pair;
15pub use pair::Pair;
16
17// A complete managed Orderbook.
18pub mod orderbook;
19pub use orderbook::{Orderbook, OrderbookError};
20
21// Types of instrument supported, i.e spot, perp etc.
22pub mod instrument_type;
23pub use instrument_type::{InstrumentType, InstrumentTypeError};
24
25// Pragma Aggregations
26pub mod aggregation;
27pub use aggregation::AggregationMode;
28
29// Pragma Time Intervals
30pub mod interval;
31pub use interval::Interval;
32
33// Capnp generated schema
34#[cfg(feature = "capnp")]
35mod schema_capnp {
36    include!(concat!(env!("OUT_DIR"), "/schema_capnp.rs"));
37}
38
39#[cfg(feature = "capnp")]
40pub trait CapnpSerialize {
41    fn to_capnp(&self) -> Vec<u8>;
42}
43
44#[cfg(feature = "capnp")]
45pub trait CapnpDeserialize {
46    fn from_capnp(bytes: &[u8]) -> Result<Self, capnp::Error>
47    where
48        Self: Sized;
49}