Skip to main content

SubaccountPolicySpecOwnedView

Struct SubaccountPolicySpecOwnedView 

Source
pub struct SubaccountPolicySpecOwnedView(/* private fields */);
Expand description

Self-contained, 'static owned view of a SubaccountPolicySpec message.

Wraps ::buffa::OwnedView<SubaccountPolicySpecView<'static>>: the decoded view and the ::buffa::bytes::Bytes buffer it borrows from travel together, so the handle is 'static and Send + Sync — suitable for async handlers, spawned tasks, and anywhere a 'static bound is required.

Field accessors return borrows tied to &self. Use Self::view to get the full SubaccountPolicySpecView when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.

Implementations§

Source§

impl SubaccountPolicySpecOwnedView

Source

pub fn decode(bytes: Bytes) -> Result<Self, DecodeError>

Decode an owned view from a ::buffa::bytes::Bytes buffer.

The view borrows directly from the buffer’s data; the buffer is retained inside the returned handle.

§Errors

Returns ::buffa::DecodeError if the buffer contains invalid protobuf data.

Source

pub fn decode_with_options( bytes: Bytes, opts: &DecodeOptions, ) -> Result<Self, DecodeError>

Decode with custom ::buffa::DecodeOptions (recursion limit, max message size).

§Errors

Returns ::buffa::DecodeError if the buffer is invalid or exceeds the configured limits.

Source

pub fn from_owned(msg: &SubaccountPolicySpec) -> Result<Self, DecodeError>

Build from an owned message via an encode → decode round-trip.

§Errors

Returns ::buffa::DecodeError if the re-encoded bytes are somehow invalid (should not happen for well-formed messages).

Source

pub fn view(&self) -> &SubaccountPolicySpecView<'_>

Borrow the full SubaccountPolicySpecView with its lifetime tied to &self.

Source

pub fn to_owned_message(&self) -> Result<SubaccountPolicySpec, DecodeError>

Convert to the owned message type.

§Errors

Returns an error if re-materializing preserved unknown fields fails (e.g. the unknown-field limit is exceeded).

Source

pub fn bytes(&self) -> &Bytes

The underlying bytes buffer.

Source

pub fn into_bytes(self) -> Bytes

Consume the handle, returning the underlying bytes buffer.

Source

pub fn name(&self) -> &str

Human-readable policy name. Create requires a non-empty value; update validates it after merging fields selected by update_mask.

Field 1: name

Source

pub fn description(&self) -> &str

Optional policy description for dashboards and audits. Maximum 256 characters.

Field 2: description

Source

pub fn spot_markets(&self) -> &RepeatedView<'_, SpotMarketRuleView<'_>>

Allowed spot markets for this policy.

Field 3: spot_markets

Source

pub fn perp_markets(&self) -> &RepeatedView<'_, PerpMarketRuleView<'_>>

Allowed perp markets and optional per-contract leverage caps.

Field 4: perp_markets

Source

pub fn spot_market_scope(&self) -> EnumValue<Value>

Market-level scope for spot markets. When unspecified, defaults to ALL.

Field 5: spot_market_scope

Source

pub fn perp_market_scope(&self) -> EnumValue<Value>

Market-level scope for perp contracts. When unspecified, defaults to ALL.

Field 6: perp_market_scope

Source

pub fn actions(&self) -> &RepeatedView<'_, EnumValue<PolicyAction>>

High-level actions enabled for the sub-account policy. Up to 64 unique explicit actions are allowed.

Field 7: actions

Source

pub fn global_notional_cap(&self) -> u64

Maximum total notional exposure across all positions for this sub-account, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means no explicit cap.

Field 12: global_notional_cap

Source

pub fn max_order_notional(&self) -> u64

Maximum notional size for any single order on this sub-account, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means no explicit cap.

Field 13: max_order_notional

Source

pub fn max_open_orders(&self) -> u32

Maximum number of resting orders allowed on this sub-account at any time. A value of 0 means no explicit cap.

Field 14: max_open_orders

Source

pub fn max_open_positions(&self) -> u32

Maximum number of open perp positions allowed on this sub-account. A value of 0 means no explicit cap.

Field 15: max_open_positions

Source

pub fn global_perp_leverage_x(&self) -> u32

Optional global leverage cap across all perp contracts. Supported non-zero values are 1, 3, 5, 10, 20, 50, and 100. A value of 0 means no explicit cap.

Field 16: global_perp_leverage_x

Source

pub fn daily_internal_transfer_out_limit(&self) -> u64

Maximum total notional this sub-account can transfer out internally per rolling day, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means no explicit cap.

Field 17: daily_internal_transfer_out_limit

Source

pub fn daily_withdraw_limit(&self) -> u64

Maximum total notional this sub-account can withdraw per rolling day, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means no explicit cap.

Field 18: daily_withdraw_limit

Source

pub fn internal_transfers_own_only(&self) -> bool

When true, internal transfers from this sub-account may only target other sub-accounts owned by the same root account.

Field 19: internal_transfers_own_only

Source

pub fn enforce_withdraw_whitelist(&self) -> bool

When true, external withdrawals from this sub-account must target an approved withdrawal destination.

Field 20: enforce_withdraw_whitelist

Source

pub fn trading_halted(&self) -> bool

When true, new orders for this sub-account are rejected regardless of other policy settings.

Field 21: trading_halted

Source

pub fn liquidation_only(&self) -> bool

When true, this sub-account may only reduce or close existing exposure.

Field 22: liquidation_only

Source

pub fn daily_loss_limit(&self) -> u64

Maximum realized loss over a rolling day before safety controls may halt activity, expressed in the canonical quote unit (for example, micro-USDT). A value of 0 means no explicit limit.

Field 23: daily_loss_limit

Source

pub fn intraday_drawdown_limit_bps(&self) -> u32

Maximum drawdown from peak equity in basis points. One basis point is 1/100 of one percent. A value of 0 means no explicit limit.

Field 24: intraday_drawdown_limit_bps

Source

pub fn locked(&self) -> bool

When true, the policy is write-protected and requires an elevated mutation path.

Field 25: locked

Source

pub fn review_at(&self) -> &MessageFieldView<TimestampView<'_>>

Optional review time in UTC. This does not automatically disable the policy.

Field 26: review_at

Source

pub fn expires_at(&self) -> &MessageFieldView<TimestampView<'_>>

Optional expiry time in UTC. This does not automatically disable the policy.

Field 27: expires_at

Trait Implementations§

Source§

impl AsRef<OwnedView<SubaccountPolicySpecView<'static>>> for SubaccountPolicySpecOwnedView

Source§

fn as_ref(&self) -> &OwnedView<SubaccountPolicySpecView<'static>>

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for SubaccountPolicySpecOwnedView

Source§

fn clone(&self) -> SubaccountPolicySpecOwnedView

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
Source§

impl Debug for SubaccountPolicySpecOwnedView

Source§

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

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

impl From<OwnedView<SubaccountPolicySpecView<'static>>> for SubaccountPolicySpecOwnedView

Source§

fn from(inner: OwnedView<SubaccountPolicySpecView<'static>>) -> Self

Converts to this type from the input type.
Source§

impl From<SubaccountPolicySpecOwnedView> for OwnedView<SubaccountPolicySpecView<'static>>

Source§

fn from(wrapper: SubaccountPolicySpecOwnedView) -> Self

Converts to this type from the input type.
Source§

impl Serialize for SubaccountPolicySpecOwnedView

Source§

fn serialize<__S: Serializer>(&self, __s: __S) -> Result<__S::Ok, __S::Error>

Serialize this value into the given Serde serializer. 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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.

Source§

impl<T> Instrument for T

Source§

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

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

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> JsonSerialize for T
where T: Serialize,

Source§

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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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