Skip to main content

oanda_client/
lib.rs

1//! Async provider-native client for the OANDA v20 REST API.
2//!
3//! The caller owns credentials, their storage, and the Tokio runtime.
4#![doc = include_str!("../README.md")]
5
6#[path = "account.rs"]
7pub mod accounts;
8/// Singular compatibility alias for account endpoint contracts.
9pub use accounts as account;
10mod admission;
11mod client;
12mod decimal_wire;
13mod environment;
14mod error;
15mod ids;
16pub mod models;
17#[path = "order.rs"]
18pub mod orders;
19/// Singular compatibility alias for order endpoint contracts.
20pub use orders as order;
21mod patch;
22#[path = "position.rs"]
23pub mod positions;
24/// Singular compatibility alias for position endpoint contracts.
25pub use positions as position;
26pub mod pricing;
27pub mod stream;
28mod timestamp;
29#[path = "trade.rs"]
30pub mod trades;
31mod units;
32/// Singular compatibility alias for trade endpoint contracts.
33pub use trades as trade;
34#[path = "transaction.rs"]
35pub mod transactions;
36/// Singular compatibility alias for transaction endpoint contracts.
37pub use transactions as transaction;
38mod validation;
39
40pub use admission::Admission;
41pub use client::{ApiResponse, Client, ClientBuilder};
42pub use environment::Environment;
43pub use error::{Error, GenericRejection, OperationError, Result, Supplied};
44pub use ids::*;
45pub use patch::Patch;
46pub use stream::{BufferedEvents, HttpStream, PriceStreamEvent, TransactionStreamEvent};
47pub use timestamp::{InvalidTimestamp, Timestamp};
48pub use units::{PositionCloseoutUnits, TradeCloseoutUnits};
49
50/// Instrument models and candle endpoint contracts.
51pub mod instruments {
52    pub use crate::models::{Instrument, InstrumentType};
53    pub use crate::pricing::{InstrumentCandlesQuery, InstrumentCandlesResponse};
54    pub use crate::{InstrumentName, PricingComponent};
55}
56
57/// HTTP client, streaming, and error contracts.
58pub mod transport {
59    pub use crate::{
60        Admission, ApiResponse, BufferedEvents, Client, ClientBuilder, Environment, Error,
61        GenericRejection, HttpStream, OperationError, PriceStreamEvent, Supplied,
62        TransactionStreamEvent,
63    };
64}
65
66/// Exact values, timestamps, and validated provider identities.
67pub mod primitives {
68    pub use crate::Timestamp;
69    pub use crate::ids::*;
70    pub use crate::models::{AccountUnits, DecimalNumber, PriceValue};
71}
72
73#[cfg(test)]
74extern crate self as oanda_client;
75#[cfg(test)]
76#[path = "../tests/support/mod.rs"]
77mod test_support;