mango-v4/rs/doc/mango_v4/state/struct.PerpMarket.html

141 lines
110 KiB
HTML
Raw Normal View History

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `PerpMarket` struct in crate `mango_v4`."><meta name="keywords" content="rust, rustlang, rust-lang, PerpMarket"><title>PerpMarket in mango_v4::state - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../../normalize.css"><link rel="stylesheet" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../../ayu.css" disabled><link rel="stylesheet" href="../../dark.css" disabled><link rel="stylesheet" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../mango_v4/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../mango_v4/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">PerpMarket</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#fields">Fields</a></h3><ul><li><a href="#structfield.asks">asks</a></li><li><a href="#structfield.base_decimals">base_decimals</a></li><li><a href="#structfield.base_liquidation_fee">base_liquidation_fee</a></li><li><a href="#structfield.base_lot_size">base_lot_size</a></li><li><a href="#structfield.bids">bids</a></li><li><a href="#structfield.blocked1">blocked1</a></li><li><a href="#structfield.bump">bump</a></li><li><a href="#structfield.event_queue">event_queue</a></li><li><a href="#structfield.fee_penalty">fee_penalty</a></li><li><a href="#structfield.fees_accrued">fees_accrued</a></li><li><a href="#structfield.fees_settled">fees_settled</a></li><li><a href="#structfield.force_close">force_close</a></li><li><a href="#structfield.funding_last_updated">funding_last_updated</a></li><li><a href="#structfield.group">group</a></li><li><a href="#structfield.group_insurance_fund">group_insurance_fund</a></li><li><a href="#structfield.impact_quantity">impact_quantity</a></li><li><a href="#structfield.init_base_asset_weight">init_base_asset_weight</a></li><li><a href="#structfield.init_base_liab_weight">init_base_liab_weight</a></li><li><a href="#structfield.init_overall_asset_weight">init_overall_asset_weight</a></li><li><a href="#structfield.long_funding">long_funding</a></li><li><a href="#structfield.maint_base_asset_weight">maint_base_asset_weight</a></li><li><a href="#structfield.maint_base_liab_weight">maint_base_liab_weight</a></li><li><a href="#structfield.maint_overall_asset_weight">maint_overall_asset_weight</a></li><li><a href="#structfield.maker_fee">maker_fee</a></
2023-02-11 06:48:57 -08:00
pub group: Pubkey,
pub settle_token_index: <a class="type" href="type.TokenIndex.html" title="type mango_v4::state::TokenIndex">TokenIndex</a>,
pub perp_market_index: <a class="type" href="type.PerpMarketIndex.html" title="type mango_v4::state::PerpMarketIndex">PerpMarketIndex</a>,
pub blocked1: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a>,
pub group_insurance_fund: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a>,
pub bump: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a>,
pub base_decimals: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a>,
pub name: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">[</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">; 16]</a>,
2023-02-11 06:48:57 -08:00
pub bids: Pubkey,
pub asks: Pubkey,
pub event_queue: Pubkey,
pub oracle: Pubkey,
pub oracle_config: <a class="struct" href="struct.OracleConfig.html" title="struct mango_v4::state::OracleConfig">OracleConfig</a>,
pub stable_price_model: <a class="struct" href="struct.StablePriceModel.html" title="struct mango_v4::state::StablePriceModel">StablePriceModel</a>,
pub quote_lot_size: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a>,
pub base_lot_size: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a>,
2023-02-11 06:48:57 -08:00
pub maint_base_asset_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub init_base_asset_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub maint_base_liab_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub init_base_liab_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub open_interest: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a>,
pub seq_num: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u64.html">u64</a>,
pub registration_time: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u64.html">u64</a>,
2023-02-11 06:48:57 -08:00
pub min_funding: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub max_funding: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub impact_quantity: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a>,
2023-02-11 06:48:57 -08:00
pub long_funding: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub short_funding: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub funding_last_updated: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u64.html">u64</a>,
2023-02-11 06:48:57 -08:00
pub base_liquidation_fee: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub maker_fee: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub taker_fee: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub fees_accrued: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub fees_settled: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub fee_penalty: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a>,
pub settle_fee_flat: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a>,
pub settle_fee_amount_threshold: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a>,
pub settle_fee_fraction_low_health: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a>,
pub settle_pnl_limit_factor: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a>,
pub padding3: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">[</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">; 4]</a>,
pub settle_pnl_limit_window_size_ts: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u64.html">u64</a>,
pub reduce_only: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a>,
pub force_close: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a>,
pub padding4: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">[</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">; 6]</a>,
2023-02-11 06:48:57 -08:00
pub maint_overall_asset_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub init_overall_asset_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub positive_pnl_liquidation_fee: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,
pub reserved: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">[</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">; 1888]</a>,
</details>}</code></pre></div><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor"></a></h2><span id="structfield.group" class="structfield small-section-header"><a href="#structfield.group" class="anchor field"></a><code>group: Pubkey</code></span><span id="structfield.settle_token_index" class="structfield small-section-header"><a href="#structfield.settle_token_index" class="anchor field"></a><code>settle_token_index: <a class="type" href="type.TokenIndex.html" title="type mango_v4::state::TokenIndex">TokenIndex</a></code></span><div class="docblock"><p>Token index that settlements happen in.</p>
2023-02-11 06:48:57 -08:00
<p>Currently required to be 0, USDC. In the future settlement
may be allowed to happen in other tokens.</p>
</div><span id="structfield.perp_market_index" class="structfield small-section-header"><a href="#structfield.perp_market_index" class="anchor field"></a><code>perp_market_index: <a class="type" href="type.PerpMarketIndex.html" title="type mango_v4::state::PerpMarketIndex">PerpMarketIndex</a></code></span><div class="docblock"><p>Index of this perp market. Other data, like the MangoAccounts PerpPosition
2023-02-11 06:48:57 -08:00
reference this market via this index. Unique for this groups perp markets.</p>
</div><span id="structfield.blocked1" class="structfield small-section-header"><a href="#structfield.blocked1" class="anchor field"></a><code>blocked1: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a></code></span><div class="docblock"><p>Field used to contain the trusted_market flag and is now unused.</p>
</div><span id="structfield.group_insurance_fund" class="structfield small-section-header"><a href="#structfield.group_insurance_fund" class="anchor field"></a><code>group_insurance_fund: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a></code></span><div class="docblock"><p>Is this market covered by the group insurance fund?</p>
</div><span id="structfield.bump" class="structfield small-section-header"><a href="#structfield.bump" class="anchor field"></a><code>bump: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a></code></span><div class="docblock"><p>PDA bump</p>
</div><span id="structfield.base_decimals" class="structfield small-section-header"><a href="#structfield.base_decimals" class="anchor field"></a><code>base_decimals: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a></code></span><div class="docblock"><p>Number of decimals used for the base token.</p>
2023-02-11 06:48:57 -08:00
<p>Used to convert the oracles price into a native/native price.</p>
</div><span id="structfield.name" class="structfield small-section-header"><a href="#structfield.name" class="anchor field"></a><code>name: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">[</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">; 16]</a></code></span><div class="docblock"><p>Name. Trailing zero bytes are ignored.</p>
</div><span id="structfield.bids" class="structfield small-section-header"><a href="#structfield.bids" class="anchor field"></a><code>bids: Pubkey</code></span><div class="docblock"><p>Address of the BookSide account for bids</p>
</div><span id="structfield.asks" class="structfield small-section-header"><a href="#structfield.asks" class="anchor field"></a><code>asks: Pubkey</code></span><div class="docblock"><p>Address of the BookSide account for asks</p>
</div><span id="structfield.event_queue" class="structfield small-section-header"><a href="#structfield.event_queue" class="anchor field"></a><code>event_queue: Pubkey</code></span><div class="docblock"><p>Address of the EventQueue account</p>
</div><span id="structfield.oracle" class="structfield small-section-header"><a href="#structfield.oracle" class="anchor field"></a><code>oracle: Pubkey</code></span><div class="docblock"><p>Oracle account address</p>
</div><span id="structfield.oracle_config" class="structfield small-section-header"><a href="#structfield.oracle_config" class="anchor field"></a><code>oracle_config: <a class="struct" href="struct.OracleConfig.html" title="struct mango_v4::state::OracleConfig">OracleConfig</a></code></span><div class="docblock"><p>Oracle configuration</p>
</div><span id="structfield.stable_price_model" class="structfield small-section-header"><a href="#structfield.stable_price_model" class="anchor field"></a><code>stable_price_model: <a class="struct" href="struct.StablePriceModel.html" title="struct mango_v4::state::StablePriceModel">StablePriceModel</a></code></span><div class="docblock"><p>Maintains a stable price based on the oracle price that is less volatile.</p>
</div><span id="structfield.quote_lot_size" class="structfield small-section-header"><a href="#structfield.quote_lot_size" class="anchor field"></a><code>quote_lot_size: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a></code></span><div class="docblock"><p>Number of quote native in a quote lot. Must be a power of 10.</p>
2023-02-11 06:48:57 -08:00
<p>Primarily useful for increasing the tick size on the market: A lot price
of 1 becomes a native price of quote_lot_size/base_lot_size becomes a
ui price of quote_lot_size*base_decimals/base_lot_size/quote_decimals.</p>
</div><span id="structfield.base_lot_size" class="structfield small-section-header"><a href="#structfield.base_lot_size" class="anchor field"></a><code>base_lot_size: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a></code></span><div class="docblock"><p>Number of base native in a base lot. Must be a power of 10.</p>
2023-02-11 06:48:57 -08:00
<p>Example: If base decimals for the underlying asset is 6, base lot size
is 100 and and base position lots is 10_000 then base position native is
1_000_000 and base position ui is 1.</p>
</div><span id="structfield.maint_base_asset_weight" class="structfield small-section-header"><a href="#structfield.maint_base_asset_weight" class="anchor field"></a><code>maint_base_asset_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>These weights apply to the base position. The quote position has
2023-02-11 06:48:57 -08:00
no explicit weight (but may be covered by the overall pnl asset weight).</p>
</div><span id="structfield.init_base_asset_weight" class="structfield small-section-header"><a href="#structfield.init_base_asset_weight" class="anchor field"></a><code>init_base_asset_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><span id="structfield.maint_base_liab_weight" class="structfield small-section-header"><a href="#structfield.maint_base_liab_weight" class="anchor field"></a><code>maint_base_liab_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><span id="structfield.init_base_liab_weight" class="structfield small-section-header"><a href="#structfield.init_base_liab_weight" class="anchor field"></a><code>init_base_liab_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><span id="structfield.open_interest" class="structfield small-section-header"><a href="#structfield.open_interest" class="anchor field"></a><code>open_interest: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a></code></span><div class="docblock"><p>Number of base lot pairs currently active in the market. Always &gt;= 0.</p>
</div><span id="structfield.seq_num" class="structfield small-section-header"><a href="#structfield.seq_num" class="anchor field"></a><code>seq_num: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Total number of orders seen</p>
</div><span id="structfield.registration_time" class="structfield small-section-header"><a href="#structfield.registration_time" class="anchor field"></a><code>registration_time: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Timestamp in seconds that the market was registered at.</p>
</div><span id="structfield.min_funding" class="structfield small-section-header"><a href="#structfield.min_funding" class="anchor field"></a><code>min_funding: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>Minimal funding rate per day, must be &lt;= 0.</p>
</div><span id="structfield.max_funding" class="structfield small-section-header"><a href="#structfield.max_funding" class="anchor field"></a><code>max_funding: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>Maximal funding rate per day, must be &gt;= 0.</p>
</div><span id="structfield.impact_quantity" class="structfield small-section-header"><a href="#structfield.impact_quantity" class="anchor field"></a><code>impact_quantity: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a></code></span><div class="docblock"><p>For funding, get the impact price this many base lots deep into the book.</p>
</div><span id="structfield.long_funding" class="structfield small-section-header"><a href="#structfield.long_funding" class="anchor field"></a><code>long_funding: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>Current long funding value. Increasing it means that every long base lot
needs to pay that amount of quote native in funding.</p>
2023-02-11 06:48:57 -08:00
<p>PerpPosition uses and tracks it settle funding. Updated by the perp
keeper instruction.</p>
</div><span id="structfield.short_funding" class="structfield small-section-header"><a href="#structfield.short_funding" class="anchor field"></a><code>short_funding: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>See long_funding.</p>
</div><span id="structfield.funding_last_updated" class="structfield small-section-header"><a href="#structfield.funding_last_updated" class="anchor field"></a><code>funding_last_updated: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>timestamp that funding was last updated in</p>
</div><span id="structfield.base_liquidation_fee" class="structfield small-section-header"><a href="#structfield.base_liquidation_fee" class="anchor field"></a><code>base_liquidation_fee: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>Fees
2023-02-11 06:48:57 -08:00
Fee for base position liquidation</p>
</div><span id="structfield.maker_fee" class="structfield small-section-header"><a href="#structfield.maker_fee" class="anchor field"></a><code>maker_fee: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>Fee when matching maker orders. May be negative.</p>
</div><span id="structfield.taker_fee" class="structfield small-section-header"><a href="#structfield.taker_fee" class="anchor field"></a><code>taker_fee: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>Fee for taker orders, may not be negative.</p>
</div><span id="structfield.fees_accrued" class="structfield small-section-header"><a href="#structfield.fees_accrued" class="anchor field"></a><code>fees_accrued: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>Fees accrued in native quote currency</p>
</div><span id="structfield.fees_settled" class="structfield small-section-header"><a href="#structfield.fees_settled" class="anchor field"></a><code>fees_settled: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>Fees settled in native quote currency</p>
</div><span id="structfield.fee_penalty" class="structfield small-section-header"><a href="#structfield.fee_penalty" class="anchor field"></a><code>fee_penalty: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a></code></span><div class="docblock"><p>Fee (in quote native) to charge for ioc orders</p>
</div><span id="structfield.settle_fee_flat" class="structfield small-section-header"><a href="#structfield.settle_fee_flat" class="anchor field"></a><code>settle_fee_flat: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a></code></span><div class="docblock"><p>In native units of settlement token, given to each settle call above the
2023-02-11 06:48:57 -08:00
settle_fee_amount_threshold.</p>
</div><span id="structfield.settle_fee_amount_threshold" class="structfield small-section-header"><a href="#structfield.settle_fee_amount_threshold" class="anchor field"></a><code>settle_fee_amount_threshold: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a></code></span><div class="docblock"><p>Pnl settlement amount needed to be eligible for the flat fee.</p>
</div><span id="structfield.settle_fee_fraction_low_health" class="structfield small-section-header"><a href="#structfield.settle_fee_fraction_low_health" class="anchor field"></a><code>settle_fee_fraction_low_health: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a></code></span><div class="docblock"><p>Fraction of pnl to pay out as fee if +pnl account has low health.</p>
</div><span id="structfield.settle_pnl_limit_factor" class="structfield small-section-header"><a href="#structfield.settle_pnl_limit_factor" class="anchor field"></a><code>settle_pnl_limit_factor: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.f32.html">f32</a></code></span><div class="docblock"><p>Controls the strictness of the settle limit.
2023-02-11 06:48:57 -08:00
Set to a negative value to disable the limit.</p>
<p>This factor applies to the settle limit in two ways</p>
<ul>
<li>for the unrealized pnl settle limit, the factor is multiplied with the stable perp base value
(i.e. limit_factor * base_native * stable_price)</li>
<li>when increasing the realized pnl settle limit (stored per PerpPosition), the factor is
multiplied with the stable value of the perp pnl being realized
(i.e. limit_factor * reduced_native * stable_price)</li>
</ul>
<p>See also PerpPosition::settle_pnl_limit_realized_trade</p>
</div><span id="structfield.padding3" class="structfield small-section-header"><a href="#structfield.padding3" class="anchor field"></a><code>padding3: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">[</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">; 4]</a></code></span><span id="structfield.settle_pnl_limit_window_size_ts" class="structfield small-section-header"><a href="#structfield.settle_pnl_limit_window_size_ts" class="anchor field"></a><code>settle_pnl_limit_window_size_ts: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Window size in seconds for the perp settlement limit</p>
</div><span id="structfield.reduce_only" class="structfield small-section-header"><a href="#structfield.reduce_only" class="anchor field"></a><code>reduce_only: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a></code></span><div class="docblock"><p>If true, users may no longer increase their market exposure. Only actions
2023-02-11 06:48:57 -08:00
that reduce their position are still allowed.</p>
</div><span id="structfield.force_close" class="structfield small-section-header"><a href="#structfield.force_close" class="anchor field"></a><code>force_close: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a></code></span><span id="structfield.padding4" class="structfield small-section-header"><a href="#structfield.padding4" class="anchor field"></a><code>padding4: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">[</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">; 6]</a></code></span><span id="structfield.maint_overall_asset_weight" class="structfield small-section-header"><a href="#structfield.maint_overall_asset_weight" class="anchor field"></a><code>maint_overall_asset_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><div class="docblock"><p>Weights for full perp market health, if positive</p>
</div><span id="structfield.init_overall_asset_weight" class="structfield small-section-header"><a href="#structfield.init_overall_asset_weight" class="anchor field"></a><code>init_overall_asset_weight: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><span id="structfield.positive_pnl_liquidation_fee" class="structfield small-section-header"><a href="#structfield.positive_pnl_liquidation_fee" class="anchor field"></a><code>positive_pnl_liquidation_fee: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></code></span><span id="structfield.reserved" class="structfield small-section-header"><a href="#structfield.reserved" class="anchor field"></a><code>reserved: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">[</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.array.html">; 1888]</a></code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#211-496">source</a><a href="#impl-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="struct.PerpMarket.html" title="struct mango_v4::state::PerpMarket">PerpMarket</a></h3></section></summary><div class="impl-items"><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#212-216">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fnname">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.str.html">str</a></h4></section><section id="method.is_reduce_only" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#218-220">source</a><h4 class="code-header">pub fn <a href="#method.is_reduce_only" class="fnname">is_reduce_only</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.bool.html">bool</a></h4></section><section id="method.is_force_close" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#222-224">source</a><h4 class="code-header">pub fn <a href="#method.is_force_close" class="fnname">is_force_close</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.bool.html">bool</a></h4></section><section id="method.elligible_for_group_insurance_fund" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#226-228">source</a><h4 class="code-header">pub fn <a href="#method.elligible_for_group_insurance_fund" class="fnname">elligible_for_group_insurance_fund</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.bool.html">bool</a></h4></section><section id="method.set_elligible_for_group_insurance_fund" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#230-232">source</a><h4 class="code-header">pub fn <a href="#method.set_elligible_for_group_insurance_fund" class="fnname">set_elligible_for_group_insurance_fund</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.bool.html">bool</a>)</h4></section><section id="method.settle_pnl_limit_factor" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#234-236">source</a><h4 class="code-header">pub fn <a href="#method.settle_pnl_limit_factor" class="fnname">settle_pnl_limit_factor</a>(&amp;self) -&gt; <a class="type" href="https:/
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lot_to_native_price" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#354-357">source</a><h4 class="code-header">pub fn <a href="#method.lot_to_native_price" class="fnname">lot_to_native_price</a>(&amp;self, price: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section></summary><div class="docblock"><p>Convert from the price stored on the book to the price used in value calculations</p>
</div></details><section id="method.native_price_to_lot" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#359-362">source</a><h4 class="code-header">pub fn <a href="#method.native_price_to_lot" class="fnname">native_price_to_lot</a>(&amp;self, price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.i64.html">i64</a></h4></section><details class="rustdoc-toggle method-toggle" open><summary><section id="method.inside_price_limit" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#365-375">source</a><h4 class="code-header">pub fn <a href="#method.inside_price_limit" class="fnname">inside_price_limit</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;side: <a class="enum" href="enum.Side.html" title="enum mango_v4::state::Side">Side</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;oracle_price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Is <code>native_price</code> an acceptable order for the <code>side</code> of this market, given <code>oracle_price</code>?</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.socialize_loss" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#378-395">source</a><h4 class="code-header">pub fn <a href="#method.socialize_loss" class="fnname">socialize_loss</a>(&amp;mut self, loss: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; Result&lt;<a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>&gt;</h4></section></summary><div class="docblock"><p>Socialize the loss in this account across all longs and shorts</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.compute_settle_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#399-437">source</a><h4 class="code-header">pub fn <a href="#method.compute_settle_fee" class="fnname">compute_settle_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;settlement: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;source_liq_end_health: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;source_maint_health: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; Result&lt;<a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the fee for settling <code>settlement</code> when the negative-pnl side has the given
health values.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default_for_tests" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#440-495">source</a><h4 class="code-header">pub fn <a href="#method.default_for_tests" class="fnname">default_for_tests</a>() -&gt; <a class="struct" href="struct.PerpMarket.html" title="struct mango_v4::state::PerpMarket">PerpMarket</a></h4></section></summary><div class="docblock"><p>Creates default market for tests</p>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AccountDeserialize-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#18">source</a><a href="#impl-AccountDeserialize-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl AccountDeserialize for <a class="struct" href="struct.PerpMarket.html" title="struct mango_v4::state::PerpMarket">PerpMarket</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#18">source</a><a href="#method.try_deserialize" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_deserialize</a>(buf: &amp;mut &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a>]) -&gt; Result&lt;Self&gt;</h4></section></summary><div class='docblock'>Deserializes previously initialized account data. Should fail for all
2023-02-11 06:48:57 -08:00
uninitialized accounts, where the bytes are zeroed. Implementations
should be unique to a particular account type so that one can never
successfully deserialize the data of one account type into another.
For example, if the SPL token program were to implement this trait,
it should be impossible to deserialize a <code>Mint</code> account into a token
<code>Account</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_deserialize_unchecked" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#18">source</a><a href="#method.try_deserialize_unchecked" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_deserialize_unchecked</a>(buf: &amp;mut &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.u8.html">u8</a>]) -&gt; Result&lt;Self&gt;</h4></section></summary><div class='docblock'>Deserializes account data without checking the account discriminator.
2023-02-11 06:48:57 -08:00
This should only be used on account initialization, when the bytes of
the account are zeroed. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#18">source</a><a href="#impl-Clone-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.65.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.PerpMarket.html" title="struct mango_v4::state::PerpMarket">PerpMarket</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#18">source</a><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.65.0/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.PerpMarket.html" title="struct mango_v4::state::PerpMarket">PerpMarket</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.65.0/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.65.0/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.65.0/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.reference.html">&amp;</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.65.0/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#19">source</a><a href="#impl-Debug-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.65.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.PerpMarket.html" title="struct mango_v4::state::PerpMarket">PerpMarket</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#19">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.65.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.65.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.65.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.65.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Discriminator-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/perp_market.rs.html#18">source</a><a href="#impl-Discriminator-for-PerpMarket" class="anchor"></a><h3 clas
2023-02-11 06:48:57 -08:00
the possible invalid bit patterns being checked during
<a href="CheckedBitPattern::is_valid_bit_pattern"><code>is_valid_bit_pattern</code></a>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_valid_bit_pattern" class="method trait-impl has-srclink"><a href="#method.is_valid_bit_pattern" class="anchor"></a><h4 class="code-header">fn <a class="fnname">is_valid_bit_pattern</a>(_bits: <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.reference.html">&amp;</a>T) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>If this function returns true, then it must be valid to reinterpret <code>bits</code>
as <code>&amp;Self</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-CheckedCastFrom%3CSrc%3E-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/az/~1.2/src/az/lib.rs.html#366">source</a><a href="#impl-CheckedCastFrom%3CSrc%3E-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;Src, Dst&gt; <a class="trait" href="https://docs.rs/az/~1.2/az/trait.CheckedCastFrom.html" title="trait az::CheckedCastFrom">CheckedCastFrom</a>&lt;Src&gt; for Dst<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Src: <a class="trait" href="https://docs.rs/az/~1.2/az/trait.CheckedCast.html" title="trait az::CheckedCast">CheckedCast</a>&lt;Dst&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.checked_cast_from" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/az/~1.2/src/az/lib.rs.html#369">source</a><a href="#method.checked_cast_from" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/az/~1.2/az/trait.CheckedCastFrom.html#tymethod.checked_cast_from" class="fnname">checked_cast_from</a>(src: Src) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.65.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Dst&gt;</h4></section></summary><div class='docblock'>Casts the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-DynClone-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/dyn_clone/1.0.9/src/dyn_clone/lib.rs.html#188">source</a><a href="#impl-DynClone-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://docs.rs/dyn_clone/1.0.9/dyn_clone/trait.DynClone.html" title="trait dyn_clone::DynClone">DynClone</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/1.65.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><section id="method.__clone_box" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/dyn_clone/1.0.9/src/dyn_clone/lib.rs.html#192">source</a><a href="#method.__clone_box" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/dyn_clone/1.0.9/dyn_clone/trait.DynClone.html#tymethod.__clone_box" class="fnname">__clone_box</a>(&amp;self, Private) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.unit.html">()</a></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.65.0/src/core/convert/mod.rs.html#559">source</a><a href="#impl-From%3CT%3E-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.65.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.65.0/src/core/convert/mod.rs.html#562">source</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.65.0/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class=
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Instrument-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Instrument">Instrument</a> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82">source</a><a href="#method.instrument" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument" class="fnname">instrument</a>(self, span: <a class="struct" href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html" title="struct tracing::span::Span">Span</a>) -&gt; <a class="struct" href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html" title="struct tracing::instrument::Instrumented">Instrumented</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided <a href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html" title="Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span" class="fnname">in_current_span</a>(self) -&gt; <a class="struct" href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html" title="struct tracing::instrument::Instrumented">Instrumented</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current">current</a> <a href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.65.0/src/core/convert/mod.rs.html#543">source</a><a href="#impl-Into%3CU%3E-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.65.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/1.65.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.65.0/src/core/convert/mod.rs.html#551">source</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.65.0/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
2023-02-11 06:48:57 -08:00
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.65.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-LosslessTryInto%3CDst%3E-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/fixed/~1.11/src/fixed/traits.rs.html#3054">source</a><a href="#impl-LosslessTryInto%3CDst%3E-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;Src, Dst&gt; <a class="trait" href="https://docs.rs/fixed/~1.11/fixed/traits/trait.LosslessTryInto.html" title="trait fixed::traits::LosslessTryInto">LosslessTryInto</a>&lt;Dst&gt; for Src<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Dst: <a class="trait" href="https://docs.rs/fixed/~1.11/fixed/traits/trait.LosslessTryFrom.html" title="trait fixed::traits::LosslessTryFrom">LosslessTryFrom</a>&lt;Src&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lossless_try_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/fixed/~1.11/src/fixed/traits.rs.html#3058">source</a><a href="#method.lossless_try_into" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/fixed/~1.11/fixed/traits/trait.LosslessTryInto.html#tymethod.lossless_try_into" class="fnname">lossless_try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.65.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Dst&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-LossyInto%3CDst%3E-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/fixed/~1.11/src/fixed/traits.rs.html#3105">source</a><a href="#impl-LossyInto%3CDst%3E-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;Src, Dst&gt; <a class="trait" href="https://docs.rs/fixed/~1.11/fixed/traits/trait.LossyInto.html" title="trait fixed::traits::LossyInto">LossyInto</a>&lt;Dst&gt; for Src<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Dst: <a class="trait" href="https://docs.rs/fixed/~1.11/fixed/traits/trait.LossyFrom.html" title="trait fixed::traits::LossyFrom">LossyFrom</a>&lt;Src&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lossy_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/fixed/~1.11/src/fixed/traits.rs.html#3109">source</a><a href="#method.lossy_into" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/fixed/~1.11/fixed/traits/trait.LossyInto.html#tymethod.lossy_into" class="fnname">lossy_into</a>(self) -&gt; Dst</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-OverflowingAs-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/az/~1.2/src/az/lib.rs.html#897">source</a><a href="#impl-OverflowingAs-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://docs.rs/az/~1.2/az/trait.OverflowingAs.html" title="trait az::OverflowingAs">OverflowingAs</a> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.overflowing_as" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/az/~1.2/src/az/lib.rs.html#900-902">source</a><a href="#method.overflowing_as" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/az/~1.2/az/trait.OverflowingAs.html#tymethod.overflowing_as" class="fnname">overflowing_as</a>&lt;Dst&gt;(self) -&gt; (Dst, <a class="primitive" href="https://doc.rust-lang.org/1.65.0/std/primitive.bool.html">bool</a>)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="tr
<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221">source</a><a href="#method.with_current_subscriber" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber" class="fnname">with_current_subscriber</a>(self) -&gt; <a class="struct" href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="struct tracing::instrument::WithDispatch">WithDispatch</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber">default</a> <a href="https://docs.rs/tracing-core/0.1.22/tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a
<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-WrappingAs-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/az/~1.2/src/az/lib.rs.html#818">source</a><a href="#impl-WrappingAs-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://docs.rs/az/~1.2/az/trait.WrappingAs.html" title="trait az::WrappingAs">WrappingAs</a> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.wrapping_as" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/az/~1.2/src/az/lib.rs.html#821-823">source</a><a href="#method.wrapping_as" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/az/~1.2/az/trait.WrappingAs.html#tymethod.wrapping_as" class="fnname">wrapping_as</a>&lt;Dst&gt;(self) -&gt; Dst<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://docs.rs/az/~1.2/az/trait.WrappingCast.html" title="trait az::WrappingCast">WrappingCast</a>&lt;Dst&gt;,</span></h4></section></summary><div class='docblock'>Casts the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-WrappingCastFrom%3CSrc%3E-for-PerpMarket" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/az/~1.2/src/az/lib.rs.html#438">source</a><a href="#impl-WrappingCastFrom%3CSrc%3E-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;Src, Dst&gt; <a class="trait" href="https://docs.rs/az/~1.2/az/trait.WrappingCastFrom.html" title="trait az::WrappingCastFrom">WrappingCastFrom</a>&lt;Src&gt; for Dst<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Src: <a class="trait" href="https://docs.rs/az/~1.2/az/trait.WrappingCast.html" title="trait az::WrappingCast">WrappingCast</a>&lt;Dst&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.wrapping_cast_from" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/az/~1.2/src/az/lib.rs.html#441">source</a><a href="#method.wrapping_cast_from" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/az/~1.2/az/trait.WrappingCastFrom.html#tymethod.wrapping_cast_from" class="fnname">wrapping_cast_from</a>(src: Src) -&gt; Dst</h4></section></summary><div class='docblock'>Casts the value.</div></details></div></details><section id="impl-AnyBitPattern-for-PerpMarket" class="impl has-srclink"><a href="#impl-AnyBitPattern-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; AnyBitPattern for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Pod,</span></h3></section><section id="impl-NoUninit-for-PerpMarket" class="impl has-srclink"><a href="#impl-NoUninit-for-PerpMarket" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; NoUninit for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Pod,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="mango_v4" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.65.0 (897e37553 2022-11-02)" ></div></body></html>