Skip to main content

MarketRegistry

Struct MarketRegistry 

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

Registry mapping market_index to InstrumentId and back.

Indexed for O(1) lookup by all three keys the adapter switches between: the venue’s numeric market_index (used in transaction encoding and WebSocket subscriptions), the Nautilus [InstrumentId] (used by the engine), and the raw venue symbol scoped by product type (used when parsing REST list responses). Designed to be shared across the HTTP and WebSocket clients via Arc.

The registry is intended for write-once bootstrap followed by read-only consumption: each individual lookup is lock-free, but a single insert is not transactional across the three indexes. Rare write events such as relists must be coordinated by the caller (e.g. quiesce consumers before reinserting) to avoid concurrent readers observing partial state.

Implementations§

Source§

impl MarketRegistry

Source

pub fn new() -> Self

Returns a new empty registry.

Source

pub fn insert( &self, market_index: i16, venue_symbol: &str, product_type: LighterProductType, ) -> InstrumentId

Registers a market and returns the resulting [InstrumentId].

Re-inserting the same market_index overwrites the previous mapping; callers may use this to handle venue rename or relisting events. Stale entries in the inverse indexes are evicted before the new mapping is installed so all three lookups stay consistent.

Source

pub fn instrument_id(&self, market_index: i16) -> Option<InstrumentId>

Returns the [InstrumentId] for a given market_index.

Source

pub fn all_market_indices(&self) -> Vec<i16>

Returns every registered market_index.

Callers iterating across all venue markets (e.g. the mass-status reconciliation path) use this to bound the per-market REST fan-out.

Source

pub fn market_index(&self, instrument_id: &InstrumentId) -> Option<i16>

Returns the venue market_index for a given [InstrumentId].

Source

pub fn instrument_id_by_symbol( &self, venue_symbol: &str, product_type: LighterProductType, ) -> Option<InstrumentId>

Returns the [InstrumentId] for a raw venue symbol scoped by product.

The raw symbol on its own is ambiguous when the venue lists the same asset on both perpetual and spot; the product discriminant resolves it.

Source

pub fn clear(&self)

Removes all registered markets.

Source

pub fn len(&self) -> usize

Returns the number of registered markets.

Source

pub fn is_empty(&self) -> bool

Returns whether the registry has no entries.

Trait Implementations§

Source§

impl Debug for MarketRegistry

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for MarketRegistry

Source§

fn default() -> MarketRegistry

Returns the “default value” for a type. 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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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: Sized + 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: Sized + 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
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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<T> Ungil for T
where T: Send,

§

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