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