Skip to main content

FinamCidCodec

Struct FinamCidCodec 

pub struct FinamCidCodec;
Expand description

Codec between the library’s client order id (a UUID) and the fields Finam stores on an order.

Implements [CidCodec]: encode makes the lossless text for the order comment, decode reads it back. FinamCidCodec::client_order_id makes the short, one-way tag for the client_order_id field.

The connector uses it on its own. You need it to read the cid out of an order you fetched through raw(), or to find your order at the broker by its comment.

See the module docs for the reason for two fields.

Implementations§

§

impl FinamCidCodec

pub fn client_order_id(&self, cid: Uuid) -> String

The 20 character tag for the client_order_id field of an order.

20 lowercase hex chars from 10 fully random bytes of the UUID (v4 version/variant skipped). It is one-way: 80 bits of 128 cannot rebuild the cid. It is only a second key for the case when the comment is missing in an echo.

pub fn validate(&self) -> Result<(), Error>

Startup check: the formats must fit the broker limits, otherwise it is a configuration error, not a runtime degradation.

Encodes a sample cid, checks the length of the comment and of the tag, and decodes the comment back. UserDataConnector::start calls it.

§Errors

[brokapi_core::Error::Config] when a form does not fit the documented limits (COMMENT_MAX, CLIENT_ORDER_ID_MAX) or does not decode back to the same cid.

§Examples
use brokapi_finam::FinamCidCodec;

FinamCidCodec.validate().expect("the codec fits the documented Finam limits");

Trait Implementations§

§

impl CidCodec for FinamCidCodec

§

fn caps(&self) -> CidCaps

What the broker’s field can hold. Checked by the connector at start.
§

fn encode(&self, cid: Uuid) -> Result<NativeCid, CidError>

The broker form of cid. Read more
§

fn decode(&self, native: &NativeCid) -> Option<Uuid>

The cid behind a native string, or None if this codec did not make that string.
§

impl Clone for FinamCidCodec

§

fn clone(&self) -> FinamCidCodec

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Copy for FinamCidCodec

§

impl Debug for FinamCidCodec

§

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

Formats the value using the given formatter. Read more
§

impl Default for FinamCidCodec

§

fn default() -> FinamCidCodec

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

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.

§

impl<T> IntoRequest<T> for T

§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<L> LayerExt<L> for L

§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in [Layered].
§

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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