1#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2#[repr(i32)]
3pub enum IdentifierTypeProto {
4 UnknownIdentifierType = 0,
5 ExchTicker = 1,
6 Isin = 2,
7 Cusip = 3,
8 Osi = 4,
9 Figi = 5,
10 SeriesId = 6,
11 IndexName = 7,
16 Cash = 50,
17}
18impl IdentifierTypeProto {
19 pub fn as_str_name(&self) -> &'static str {
24 match self {
25 IdentifierTypeProto::UnknownIdentifierType => "UNKNOWN_IDENTIFIER_TYPE",
26 IdentifierTypeProto::ExchTicker => "EXCH_TICKER",
27 IdentifierTypeProto::Isin => "ISIN",
28 IdentifierTypeProto::Cusip => "CUSIP",
29 IdentifierTypeProto::Osi => "OSI",
30 IdentifierTypeProto::Figi => "FIGI",
31 IdentifierTypeProto::SeriesId => "SERIES_ID",
32 IdentifierTypeProto::IndexName => "INDEX_NAME",
33 IdentifierTypeProto::Cash => "CASH",
34 }
35 }
36 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
38 match value {
39 "UNKNOWN_IDENTIFIER_TYPE" => Some(Self::UnknownIdentifierType),
40 "EXCH_TICKER" => Some(Self::ExchTicker),
41 "ISIN" => Some(Self::Isin),
42 "CUSIP" => Some(Self::Cusip),
43 "OSI" => Some(Self::Osi),
44 "FIGI" => Some(Self::Figi),
45 "SERIES_ID" => Some(Self::SeriesId),
46 "INDEX_NAME" => Some(Self::IndexName),
47 "CASH" => Some(Self::Cash),
48 _ => None,
49 }
50 }
51}
52#[allow(clippy::derive_partial_eq_without_eq)]
53#[derive(Clone, PartialEq, ::prost::Message)]
54pub struct IdentifierProto {
55 #[prost(string, tag = "1")]
56 pub object_class: ::prost::alloc::string::String,
57 #[prost(string, tag = "2")]
58 pub version: ::prost::alloc::string::String,
59 #[prost(string, tag = "5")]
61 pub identifier_value: ::prost::alloc::string::String,
62 #[prost(enumeration = "IdentifierTypeProto", tag = "6")]
63 pub identifier_type: i32,
64}
65#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
88#[repr(i32)]
89pub enum ProductTypeProto {
90 ProductTypeUnknown = 0,
91 Tbill = 1,
93 TreasuryNote = 2,
94 TreasuryBond = 3,
95 Tips = 4,
96 TreasuryFrn = 5,
97 Strips = 6,
98 SovereignBond = 7,
99 CorpBond = 8,
100 MuniBond = 9,
101 MortgageBacked = 10,
102 CommonStock = 20,
104 PreferredStock = 21,
105 Adr = 22,
106 Etf = 23,
107 EquityIndex = 30,
109 BondIndex = 31,
110 CommodityIndex = 32,
111 VixSpot = 33,
112 CpiSeries = 34,
113 SofrSeries = 35,
114 Currency = 40,
116 FxSpot = 41,
117 MoneyMarketFund = 42,
118 Cryptocurrency = 50,
120 Stablecoin = 51,
121 Gold = 60,
123 Silver = 61,
124}
125impl ProductTypeProto {
126 pub fn as_str_name(&self) -> &'static str {
131 match self {
132 ProductTypeProto::ProductTypeUnknown => "PRODUCT_TYPE_UNKNOWN",
133 ProductTypeProto::Tbill => "TBILL",
134 ProductTypeProto::TreasuryNote => "TREASURY_NOTE",
135 ProductTypeProto::TreasuryBond => "TREASURY_BOND",
136 ProductTypeProto::Tips => "TIPS",
137 ProductTypeProto::TreasuryFrn => "TREASURY_FRN",
138 ProductTypeProto::Strips => "STRIPS",
139 ProductTypeProto::SovereignBond => "SOVEREIGN_BOND",
140 ProductTypeProto::CorpBond => "CORP_BOND",
141 ProductTypeProto::MuniBond => "MUNI_BOND",
142 ProductTypeProto::MortgageBacked => "MORTGAGE_BACKED",
143 ProductTypeProto::CommonStock => "COMMON_STOCK",
144 ProductTypeProto::PreferredStock => "PREFERRED_STOCK",
145 ProductTypeProto::Adr => "ADR",
146 ProductTypeProto::Etf => "ETF",
147 ProductTypeProto::EquityIndex => "EQUITY_INDEX",
148 ProductTypeProto::BondIndex => "BOND_INDEX",
149 ProductTypeProto::CommodityIndex => "COMMODITY_INDEX",
150 ProductTypeProto::VixSpot => "VIX_SPOT",
151 ProductTypeProto::CpiSeries => "CPI_SERIES",
152 ProductTypeProto::SofrSeries => "SOFR_SERIES",
153 ProductTypeProto::Currency => "CURRENCY",
154 ProductTypeProto::FxSpot => "FX_SPOT",
155 ProductTypeProto::MoneyMarketFund => "MONEY_MARKET_FUND",
156 ProductTypeProto::Cryptocurrency => "CRYPTOCURRENCY",
157 ProductTypeProto::Stablecoin => "STABLECOIN",
158 ProductTypeProto::Gold => "GOLD",
159 ProductTypeProto::Silver => "SILVER",
160 }
161 }
162 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
164 match value {
165 "PRODUCT_TYPE_UNKNOWN" => Some(Self::ProductTypeUnknown),
166 "TBILL" => Some(Self::Tbill),
167 "TREASURY_NOTE" => Some(Self::TreasuryNote),
168 "TREASURY_BOND" => Some(Self::TreasuryBond),
169 "TIPS" => Some(Self::Tips),
170 "TREASURY_FRN" => Some(Self::TreasuryFrn),
171 "STRIPS" => Some(Self::Strips),
172 "SOVEREIGN_BOND" => Some(Self::SovereignBond),
173 "CORP_BOND" => Some(Self::CorpBond),
174 "MUNI_BOND" => Some(Self::MuniBond),
175 "MORTGAGE_BACKED" => Some(Self::MortgageBacked),
176 "COMMON_STOCK" => Some(Self::CommonStock),
177 "PREFERRED_STOCK" => Some(Self::PreferredStock),
178 "ADR" => Some(Self::Adr),
179 "ETF" => Some(Self::Etf),
180 "EQUITY_INDEX" => Some(Self::EquityIndex),
181 "BOND_INDEX" => Some(Self::BondIndex),
182 "COMMODITY_INDEX" => Some(Self::CommodityIndex),
183 "VIX_SPOT" => Some(Self::VixSpot),
184 "CPI_SERIES" => Some(Self::CpiSeries),
185 "SOFR_SERIES" => Some(Self::SofrSeries),
186 "CURRENCY" => Some(Self::Currency),
187 "FX_SPOT" => Some(Self::FxSpot),
188 "MONEY_MARKET_FUND" => Some(Self::MoneyMarketFund),
189 "CRYPTOCURRENCY" => Some(Self::Cryptocurrency),
190 "STABLECOIN" => Some(Self::Stablecoin),
191 "GOLD" => Some(Self::Gold),
192 "SILVER" => Some(Self::Silver),
193 _ => None,
194 }
195 }
196}
197#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
224#[repr(i32)]
225pub enum InstrumentTypeProto {
226 InstrumentTypeUnknown = 0,
227 InstrumentTypeCash = 1,
228 InstrumentTypeDerivative = 2,
229 InstrumentTypeReferenceIndex = 3,
230}
231impl InstrumentTypeProto {
232 pub fn as_str_name(&self) -> &'static str {
237 match self {
238 InstrumentTypeProto::InstrumentTypeUnknown => "INSTRUMENT_TYPE_UNKNOWN",
239 InstrumentTypeProto::InstrumentTypeCash => "INSTRUMENT_TYPE_CASH",
240 InstrumentTypeProto::InstrumentTypeDerivative => "INSTRUMENT_TYPE_DERIVATIVE",
241 InstrumentTypeProto::InstrumentTypeReferenceIndex => {
242 "INSTRUMENT_TYPE_REFERENCE_INDEX"
243 }
244 }
245 }
246 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
248 match value {
249 "INSTRUMENT_TYPE_UNKNOWN" => Some(Self::InstrumentTypeUnknown),
250 "INSTRUMENT_TYPE_CASH" => Some(Self::InstrumentTypeCash),
251 "INSTRUMENT_TYPE_DERIVATIVE" => Some(Self::InstrumentTypeDerivative),
252 "INSTRUMENT_TYPE_REFERENCE_INDEX" => Some(Self::InstrumentTypeReferenceIndex),
253 _ => None,
254 }
255 }
256}
257#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
258#[repr(i32)]
259pub enum SecurityQuantityTypeProto {
260 UnknownQuantityType = 0,
262 OriginalFaceValue = 1,
263 Notional = 2,
264 Units = 3,
265}
266impl SecurityQuantityTypeProto {
267 pub fn as_str_name(&self) -> &'static str {
272 match self {
273 SecurityQuantityTypeProto::UnknownQuantityType => "UNKNOWN_QUANTITY_TYPE",
274 SecurityQuantityTypeProto::OriginalFaceValue => "ORIGINAL_FACE_VALUE",
275 SecurityQuantityTypeProto::Notional => "NOTIONAL",
276 SecurityQuantityTypeProto::Units => "UNITS",
277 }
278 }
279 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
281 match value {
282 "UNKNOWN_QUANTITY_TYPE" => Some(Self::UnknownQuantityType),
283 "ORIGINAL_FACE_VALUE" => Some(Self::OriginalFaceValue),
284 "NOTIONAL" => Some(Self::Notional),
285 "UNITS" => Some(Self::Units),
286 _ => None,
287 }
288 }
289}
290#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
291#[repr(i32)]
292pub enum CouponFrequencyProto {
293 UnknownCouponFrequency = 0,
295 Annually = 1,
296 Semiannually = 2,
297 Quarterly = 3,
298 Monthly = 4,
299 NoCoupon = 5,
300}
301impl CouponFrequencyProto {
302 pub fn as_str_name(&self) -> &'static str {
307 match self {
308 CouponFrequencyProto::UnknownCouponFrequency => "UNKNOWN_COUPON_FREQUENCY",
309 CouponFrequencyProto::Annually => "ANNUALLY",
310 CouponFrequencyProto::Semiannually => "SEMIANNUALLY",
311 CouponFrequencyProto::Quarterly => "QUARTERLY",
312 CouponFrequencyProto::Monthly => "MONTHLY",
313 CouponFrequencyProto::NoCoupon => "NO_COUPON",
314 }
315 }
316 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
318 match value {
319 "UNKNOWN_COUPON_FREQUENCY" => Some(Self::UnknownCouponFrequency),
320 "ANNUALLY" => Some(Self::Annually),
321 "SEMIANNUALLY" => Some(Self::Semiannually),
322 "QUARTERLY" => Some(Self::Quarterly),
323 "MONTHLY" => Some(Self::Monthly),
324 "NO_COUPON" => Some(Self::NoCoupon),
325 _ => None,
326 }
327 }
328}
329#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
330#[repr(i32)]
331pub enum CouponTypeProto {
332 UnknownCouponType = 0,
334 Fixed = 1,
335 Float = 2,
336 Zero = 3,
337}
338impl CouponTypeProto {
339 pub fn as_str_name(&self) -> &'static str {
344 match self {
345 CouponTypeProto::UnknownCouponType => "UNKNOWN_COUPON_TYPE",
346 CouponTypeProto::Fixed => "FIXED",
347 CouponTypeProto::Float => "FLOAT",
348 CouponTypeProto::Zero => "ZERO",
349 }
350 }
351 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
353 match value {
354 "UNKNOWN_COUPON_TYPE" => Some(Self::UnknownCouponType),
355 "FIXED" => Some(Self::Fixed),
356 "FLOAT" => Some(Self::Float),
357 "ZERO" => Some(Self::Zero),
358 _ => None,
359 }
360 }
361}
362#[allow(clippy::derive_partial_eq_without_eq)]
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct SecurityProto {
365 #[prost(string, tag = "1")]
366 pub object_class: ::prost::alloc::string::String,
367 #[prost(string, tag = "2")]
368 pub version: ::prost::alloc::string::String,
369 #[prost(message, optional, tag = "5")]
371 pub uuid: ::core::option::Option<super::util::UuidProto>,
372 #[prost(message, optional, tag = "6")]
373 pub as_of: ::core::option::Option<super::util::LocalTimestampProto>,
374 #[prost(bool, tag = "7")]
380 pub is_link: bool,
381 #[prost(message, optional, tag = "8")]
382 pub valid_from: ::core::option::Option<super::util::LocalTimestampProto>,
383 #[prost(message, optional, tag = "9")]
384 pub valid_to: ::core::option::Option<super::util::LocalTimestampProto>,
385 #[prost(enumeration = "ProductTypeProto", tag = "10")]
386 pub product_type: i32,
387 #[prost(enumeration = "InstrumentTypeProto", tag = "16")]
391 pub instrument_type: i32,
392 #[prost(message, repeated, tag = "17")]
406 pub legs: ::prost::alloc::vec::Vec<SecurityProto>,
407 #[prost(string, tag = "11")]
409 pub asset_class: ::prost::alloc::string::String,
410 #[prost(string, tag = "12")]
411 pub issuer_name: ::prost::alloc::string::String,
412 #[prost(message, optional, boxed, tag = "13")]
413 pub settlement_currency: ::core::option::Option<
414 ::prost::alloc::boxed::Box<SecurityProto>,
415 >,
416 #[prost(enumeration = "SecurityQuantityTypeProto", tag = "14")]
417 pub quantity_type: i32,
418 #[prost(string, tag = "41")]
419 pub description: ::prost::alloc::string::String,
420 #[prost(message, repeated, tag = "42")]
425 pub identifiers: ::prost::alloc::vec::Vec<IdentifierProto>,
426 #[prost(message, optional, tag = "200")]
431 pub bond_details: ::core::option::Option<BondDetailsProto>,
432 #[prost(message, optional, tag = "201")]
435 pub tips_extension: ::core::option::Option<TipsExtensionProto>,
436 #[prost(message, optional, tag = "202")]
439 pub frn_extension: ::core::option::Option<FrnExtensionProto>,
440 #[prost(message, optional, tag = "207")]
445 pub mbs_extension: ::core::option::Option<MbsExtensionProto>,
446 #[prost(oneof = "security_proto::NonBondDetails", tags = "203, 204, 205, 206")]
449 pub non_bond_details: ::core::option::Option<security_proto::NonBondDetails>,
450}
451pub mod security_proto {
453 #[allow(clippy::derive_partial_eq_without_eq)]
456 #[derive(Clone, PartialEq, ::prost::Oneof)]
457 pub enum NonBondDetails {
458 #[prost(message, tag = "203")]
459 IndexDetails(super::IndexDetailsProto),
460 #[prost(message, tag = "204")]
461 EquityDetails(super::EquityDetailsProto),
462 #[prost(message, tag = "205")]
463 CashDetails(super::CashDetailsProto),
464 #[prost(message, tag = "206")]
465 FxSpotDetails(::prost::alloc::boxed::Box<super::FxSpotDetailsProto>),
466 }
467}
468#[allow(clippy::derive_partial_eq_without_eq)]
470#[derive(Clone, PartialEq, ::prost::Message)]
471pub struct BondDetailsProto {
472 #[prost(message, optional, tag = "1")]
474 pub coupon_rate: ::core::option::Option<super::util::DecimalValueProto>,
475 #[prost(enumeration = "CouponTypeProto", tag = "2")]
476 pub coupon_type: i32,
477 #[prost(enumeration = "CouponFrequencyProto", tag = "3")]
478 pub coupon_frequency: i32,
479 #[prost(message, optional, tag = "4")]
480 pub dated_date: ::core::option::Option<super::util::LocalDateProto>,
481 #[prost(message, optional, tag = "5")]
482 pub face_value: ::core::option::Option<super::util::DecimalValueProto>,
483 #[prost(message, optional, tag = "6")]
484 pub issue_date: ::core::option::Option<super::util::LocalDateProto>,
485 #[prost(message, optional, tag = "7")]
486 pub maturity_date: ::core::option::Option<super::util::LocalDateProto>,
487 #[prost(message, repeated, tag = "8")]
488 pub issuance_info: ::prost::alloc::vec::Vec<bond::IssuanceProto>,
489}
490#[allow(clippy::derive_partial_eq_without_eq)]
494#[derive(Clone, PartialEq, ::prost::Message)]
495pub struct TipsExtensionProto {
496 #[prost(message, optional, tag = "1")]
498 pub base_cpi: ::core::option::Option<super::util::DecimalValueProto>,
499 #[prost(message, optional, tag = "2")]
501 pub index_date: ::core::option::Option<super::util::LocalDateProto>,
502 #[prost(enumeration = "index::IndexTypeProto", tag = "3")]
504 pub inflation_index_type: i32,
505}
506#[allow(clippy::derive_partial_eq_without_eq)]
510#[derive(Clone, PartialEq, ::prost::Message)]
511pub struct FrnExtensionProto {
512 #[prost(message, optional, tag = "1")]
514 pub spread: ::core::option::Option<super::util::DecimalValueProto>,
515 #[prost(enumeration = "index::IndexTypeProto", tag = "2")]
517 pub reference_rate_index: i32,
518 #[prost(enumeration = "CouponFrequencyProto", tag = "3")]
520 pub reset_frequency: i32,
521}
522#[allow(clippy::derive_partial_eq_without_eq)]
527#[derive(Clone, PartialEq, ::prost::Message)]
528pub struct MbsExtensionProto {
529 #[prost(string, tag = "1")]
531 pub pool_number: ::prost::alloc::string::String,
532 #[prost(enumeration = "bond::AgencyProto", tag = "2")]
534 pub agency: i32,
535 #[prost(message, optional, tag = "3")]
537 pub wac: ::core::option::Option<super::util::DecimalValueProto>,
538 #[prost(int32, tag = "4")]
540 pub wam: i32,
541 #[prost(message, optional, tag = "5")]
543 pub pass_through_rate: ::core::option::Option<super::util::DecimalValueProto>,
544 #[prost(message, optional, tag = "6")]
546 pub current_factor: ::core::option::Option<super::util::DecimalValueProto>,
547 #[prost(message, optional, tag = "7")]
549 pub original_face_value: ::core::option::Option<super::util::DecimalValueProto>,
550 #[prost(message, optional, tag = "8")]
552 pub current_upb: ::core::option::Option<super::util::DecimalValueProto>,
553 #[prost(message, optional, tag = "9")]
555 pub psa_speed: ::core::option::Option<super::util::DecimalValueProto>,
556}
557#[allow(clippy::derive_partial_eq_without_eq)]
559#[derive(Clone, PartialEq, ::prost::Message)]
560pub struct IndexDetailsProto {
561 #[prost(enumeration = "index::IndexTypeProto", tag = "1")]
562 pub index_type: i32,
563 #[prost(message, repeated, tag = "2")]
569 pub constituents: ::prost::alloc::vec::Vec<SecurityProto>,
570}
571#[allow(clippy::derive_partial_eq_without_eq)]
577#[derive(Clone, PartialEq, ::prost::Message)]
578pub struct EquityDetailsProto {}
579#[allow(clippy::derive_partial_eq_without_eq)]
581#[derive(Clone, PartialEq, ::prost::Message)]
582pub struct CashDetailsProto {
583 #[prost(string, tag = "1")]
585 pub cash_id: ::prost::alloc::string::String,
586}
587#[allow(clippy::derive_partial_eq_without_eq)]
593#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct FxSpotDetailsProto {
595 #[prost(message, optional, boxed, tag = "1")]
597 pub base_currency: ::core::option::Option<::prost::alloc::boxed::Box<SecurityProto>>,
598 #[prost(message, optional, boxed, tag = "2")]
600 pub quote_currency: ::core::option::Option<
601 ::prost::alloc::boxed::Box<SecurityProto>,
602 >,
603 #[prost(string, tag = "3")]
605 pub convention: ::prost::alloc::string::String,
606}
607#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
627#[repr(i32)]
628pub enum AssetClassProto {
629 UnknownAssetClass = 0,
630 FixedIncome = 1,
631 Equity = 2,
632 CashAssetClass = 3,
633 Index = 4,
637 Volatility = 5,
644 Crypto = 6,
648}
649impl AssetClassProto {
650 pub fn as_str_name(&self) -> &'static str {
655 match self {
656 AssetClassProto::UnknownAssetClass => "UNKNOWN_ASSET_CLASS",
657 AssetClassProto::FixedIncome => "FIXED_INCOME",
658 AssetClassProto::Equity => "EQUITY",
659 AssetClassProto::CashAssetClass => "CASH_ASSET_CLASS",
660 AssetClassProto::Index => "INDEX",
661 AssetClassProto::Volatility => "VOLATILITY",
662 AssetClassProto::Crypto => "CRYPTO",
663 }
664 }
665 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
667 match value {
668 "UNKNOWN_ASSET_CLASS" => Some(Self::UnknownAssetClass),
669 "FIXED_INCOME" => Some(Self::FixedIncome),
670 "EQUITY" => Some(Self::Equity),
671 "CASH_ASSET_CLASS" => Some(Self::CashAssetClass),
672 "INDEX" => Some(Self::Index),
673 "VOLATILITY" => Some(Self::Volatility),
674 "CRYPTO" => Some(Self::Crypto),
675 _ => None,
676 }
677 }
678}
679#[allow(clippy::derive_partial_eq_without_eq)]
693#[derive(Clone, PartialEq, ::prost::Message)]
694pub struct IndexCompositionProto {
695 #[prost(string, tag = "1")]
696 pub object_class: ::prost::alloc::string::String,
697 #[prost(string, tag = "2")]
698 pub version: ::prost::alloc::string::String,
699 #[prost(message, optional, tag = "5")]
701 pub uuid: ::core::option::Option<super::util::UuidProto>,
702 #[prost(message, optional, tag = "6")]
703 pub as_of: ::core::option::Option<super::util::LocalTimestampProto>,
704 #[prost(bool, tag = "7")]
705 pub is_link: bool,
706 #[prost(message, optional, tag = "8")]
707 pub valid_from: ::core::option::Option<super::util::LocalTimestampProto>,
708 #[prost(message, optional, tag = "9")]
709 pub valid_to: ::core::option::Option<super::util::LocalTimestampProto>,
710 #[prost(message, optional, tag = "10")]
713 pub index_security: ::core::option::Option<SecurityProto>,
714 #[prost(message, optional, tag = "11")]
718 pub effective_date: ::core::option::Option<super::util::LocalDateProto>,
719 #[prost(message, repeated, tag = "20")]
721 pub constituents: ::prost::alloc::vec::Vec<IndexConstituentProto>,
722 #[prost(message, optional, tag = "21")]
726 pub index_divisor: ::core::option::Option<super::util::DecimalValueProto>,
727 #[prost(string, tag = "31")]
729 pub notes: ::prost::alloc::string::String,
730}
731#[allow(clippy::derive_partial_eq_without_eq)]
733#[derive(Clone, PartialEq, ::prost::Message)]
734pub struct IndexConstituentProto {
735 #[prost(message, optional, tag = "1")]
738 pub security: ::core::option::Option<SecurityProto>,
739 #[prost(message, optional, tag = "2")]
743 pub weight: ::core::option::Option<super::util::DecimalValueProto>,
744 #[prost(message, optional, tag = "3")]
747 pub shares_in_index: ::core::option::Option<super::util::DecimalValueProto>,
748 #[prost(string, tag = "5")]
750 pub currency: ::prost::alloc::string::String,
751}
752#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
753#[repr(i32)]
754pub enum TenorTypeProto {
755 UnknownTenorType = 0,
756 Perpetual = 1,
757 Term = 2,
758}
759impl TenorTypeProto {
760 pub fn as_str_name(&self) -> &'static str {
765 match self {
766 TenorTypeProto::UnknownTenorType => "UNKNOWN_TENOR_TYPE",
767 TenorTypeProto::Perpetual => "PERPETUAL",
768 TenorTypeProto::Term => "TERM",
769 }
770 }
771 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
773 match value {
774 "UNKNOWN_TENOR_TYPE" => Some(Self::UnknownTenorType),
775 "PERPETUAL" => Some(Self::Perpetual),
776 "TERM" => Some(Self::Term),
777 _ => None,
778 }
779 }
780}
781#[allow(clippy::derive_partial_eq_without_eq)]
782#[derive(Clone, PartialEq, ::prost::Message)]
783pub struct TenorProto {
784 #[prost(string, tag = "1")]
785 pub object_class: ::prost::alloc::string::String,
786 #[prost(string, tag = "2")]
787 pub version: ::prost::alloc::string::String,
788 #[prost(string, tag = "5")]
789 pub term_value: ::prost::alloc::string::String,
790 #[prost(enumeration = "TenorTypeProto", tag = "6")]
791 pub tenor_type: i32,
792}