Skip to main content

BetfairStreamClient

Struct BetfairStreamClient 

Source
pub struct BetfairStreamClient { /* private fields */ }
Expand description

Betfair Exchange Stream API client using raw TLS (CRLF-delimited JSON).

On connect, authenticates immediately. On reconnection, replays authentication and any active subscriptions with the latest clk token for delta resumption.

The auth bytes are stored in a watch channel so the caller can push refreshed session tokens via update_auth after keep-alive or HTTP reconnect. The closed flag distinguishes permanent shutdown from transient reconnect.

Implementations§

Source§

impl BetfairStreamClient

Source

pub async fn connect( credential: &BetfairCredential, session_token: String, handler: TcpMessageHandler, config: BetfairStreamConfig, ) -> Result<Self, BetfairStreamError>

Connects to the Betfair stream API and authenticates.

§Errors

Returns an error if the connection fails or authentication cannot be sent.

Source

pub async fn subscribe_markets( &self, market_filter: StreamMarketFilter, data_filter: MarketDataFilter, heartbeat_ms: Option<u64>, conflate_ms: Option<u64>, ) -> Result<(), BetfairStreamError>

Subscribes to market data for the given filter and data fields.

Stores the subscription for automatic replay on reconnection.

§Errors

Returns an error if serialization or sending fails.

Source

pub async fn subscribe_orders( &self, order_filter: Option<OrderFilter>, heartbeat_ms: Option<u64>, ) -> Result<(), BetfairStreamError>

Subscribes to order updates.

Stores the subscription for automatic replay on reconnection.

§Errors

Returns an error if serialization or sending fails.

Source

pub fn is_active(&self) -> bool

Returns true if the connection is active.

Source

pub fn update_auth(&self, app_key: &str, session_token: String)

Pushes refreshed auth bytes so the next reconnection or subscription uses the current session token instead of the one from initial connect.

Source

pub async fn close(&self)

Closes the stream connection.

Trait Implementations§

Source§

impl Debug for BetfairStreamClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

impl<T> Ungil for T
where T: Send,