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
5// These endpoint contracts and provider descriptions are hand-maintained from OANDA's published pages.
6#[allow(
7    clippy::doc_markdown,
8    clippy::missing_errors_doc,
9    clippy::wildcard_imports
10)]
11#[path = "account.rs"]
12pub mod accounts;
13/// Singular compatibility alias for account endpoint contracts.
14pub use accounts as account;
15mod admission;
16mod client;
17mod decimal_wire;
18mod environment;
19mod error;
20mod ids;
21#[allow(
22    clippy::doc_markdown,
23    clippy::must_use_candidate,
24    clippy::too_many_lines,
25    clippy::wildcard_imports
26)]
27pub mod models;
28#[allow(
29    clippy::doc_markdown,
30    clippy::missing_errors_doc,
31    clippy::wildcard_imports
32)]
33#[path = "order.rs"]
34pub mod orders;
35/// Singular compatibility alias for order endpoint contracts.
36pub use orders as order;
37mod patch;
38#[allow(
39    clippy::doc_markdown,
40    clippy::missing_errors_doc,
41    clippy::wildcard_imports
42)]
43#[path = "position.rs"]
44pub mod positions;
45/// Singular compatibility alias for position endpoint contracts.
46pub use positions as position;
47#[allow(
48    clippy::doc_markdown,
49    clippy::missing_errors_doc,
50    clippy::wildcard_imports
51)]
52pub mod pricing;
53pub mod stream;
54mod timestamp;
55#[allow(
56    clippy::doc_markdown,
57    clippy::missing_errors_doc,
58    clippy::wildcard_imports
59)]
60#[path = "trade.rs"]
61pub mod trades;
62/// Singular compatibility alias for trade endpoint contracts.
63pub use trades as trade;
64#[allow(
65    clippy::doc_markdown,
66    clippy::missing_errors_doc,
67    clippy::wildcard_imports
68)]
69#[path = "transaction.rs"]
70pub mod transactions;
71/// Singular compatibility alias for transaction endpoint contracts.
72pub use transactions as transaction;
73mod validation;
74
75pub use admission::Admission;
76pub use client::{ApiResponse, Client, ClientBuilder};
77pub use environment::Environment;
78pub use error::{Error, GenericRejection, OperationError, Result, Supplied};
79pub use ids::*;
80pub use patch::Patch;
81pub use stream::{HttpStream, PriceStreamEvent, TransactionStreamEvent};
82pub use timestamp::Timestamp;
83
84/// Instrument models and candle endpoint contracts.
85pub mod instruments {
86    pub use crate::models::{Instrument, InstrumentType};
87    pub use crate::pricing::{InstrumentCandlesQuery, InstrumentCandlesResponse};
88    pub use crate::{InstrumentName, PricingComponent};
89}
90
91/// HTTP client, streaming, and error contracts.
92pub mod transport {
93    pub use crate::{
94        Admission, ApiResponse, Client, ClientBuilder, Environment, Error, GenericRejection,
95        HttpStream, OperationError, PriceStreamEvent, Supplied, TransactionStreamEvent,
96    };
97}
98
99/// Exact values, timestamps, and validated provider identities.
100pub mod primitives {
101    pub use crate::Timestamp;
102    pub use crate::ids::*;
103    pub use crate::models::{AccountUnits, DecimalNumber, PriceValue};
104}