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(message, optional, tag = "15")]
414 pub deleted_at: ::core::option::Option<super::util::LocalTimestampProto>,
415 #[prost(string, tag = "11")]
417 pub asset_class: ::prost::alloc::string::String,
418 #[prost(string, tag = "12")]
419 pub issuer_name: ::prost::alloc::string::String,
420 #[prost(message, optional, boxed, tag = "13")]
421 pub settlement_currency: ::core::option::Option<
422 ::prost::alloc::boxed::Box<SecurityProto>,
423 >,
424 #[prost(enumeration = "SecurityQuantityTypeProto", tag = "14")]
425 pub quantity_type: i32,
426 #[prost(string, tag = "41")]
427 pub description: ::prost::alloc::string::String,
428 #[prost(message, repeated, tag = "42")]
433 pub identifiers: ::prost::alloc::vec::Vec<IdentifierProto>,
434 #[prost(message, optional, tag = "200")]
439 pub bond_details: ::core::option::Option<BondDetailsProto>,
440 #[prost(message, optional, tag = "201")]
443 pub tips_extension: ::core::option::Option<TipsExtensionProto>,
444 #[prost(message, optional, tag = "202")]
447 pub frn_extension: ::core::option::Option<FrnExtensionProto>,
448 #[prost(message, optional, tag = "207")]
453 pub mbs_extension: ::core::option::Option<MbsExtensionProto>,
454 #[prost(oneof = "security_proto::NonBondDetails", tags = "203, 204, 205, 206")]
457 pub non_bond_details: ::core::option::Option<security_proto::NonBondDetails>,
458}
459pub mod security_proto {
461 #[allow(clippy::derive_partial_eq_without_eq)]
464 #[derive(Clone, PartialEq, ::prost::Oneof)]
465 pub enum NonBondDetails {
466 #[prost(message, tag = "203")]
467 IndexDetails(super::IndexDetailsProto),
468 #[prost(message, tag = "204")]
469 EquityDetails(super::EquityDetailsProto),
470 #[prost(message, tag = "205")]
471 CashDetails(super::CashDetailsProto),
472 #[prost(message, tag = "206")]
473 FxSpotDetails(::prost::alloc::boxed::Box<super::FxSpotDetailsProto>),
474 }
475}
476#[allow(clippy::derive_partial_eq_without_eq)]
478#[derive(Clone, PartialEq, ::prost::Message)]
479pub struct BondDetailsProto {
480 #[prost(message, optional, tag = "1")]
482 pub coupon_rate: ::core::option::Option<super::util::DecimalValueProto>,
483 #[prost(enumeration = "CouponTypeProto", tag = "2")]
484 pub coupon_type: i32,
485 #[prost(enumeration = "CouponFrequencyProto", tag = "3")]
486 pub coupon_frequency: i32,
487 #[prost(message, optional, tag = "4")]
488 pub dated_date: ::core::option::Option<super::util::LocalDateProto>,
489 #[prost(message, optional, tag = "5")]
490 pub face_value: ::core::option::Option<super::util::DecimalValueProto>,
491 #[prost(message, optional, tag = "6")]
492 pub issue_date: ::core::option::Option<super::util::LocalDateProto>,
493 #[prost(message, optional, tag = "7")]
494 pub maturity_date: ::core::option::Option<super::util::LocalDateProto>,
495 #[prost(message, repeated, tag = "8")]
496 pub issuance_info: ::prost::alloc::vec::Vec<bond::IssuanceProto>,
497}
498#[allow(clippy::derive_partial_eq_without_eq)]
502#[derive(Clone, PartialEq, ::prost::Message)]
503pub struct TipsExtensionProto {
504 #[prost(message, optional, tag = "1")]
506 pub base_cpi: ::core::option::Option<super::util::DecimalValueProto>,
507 #[prost(message, optional, tag = "2")]
509 pub index_date: ::core::option::Option<super::util::LocalDateProto>,
510 #[prost(enumeration = "index::IndexTypeProto", tag = "3")]
512 pub inflation_index_type: i32,
513}
514#[allow(clippy::derive_partial_eq_without_eq)]
518#[derive(Clone, PartialEq, ::prost::Message)]
519pub struct FrnExtensionProto {
520 #[prost(message, optional, tag = "1")]
522 pub spread: ::core::option::Option<super::util::DecimalValueProto>,
523 #[prost(enumeration = "index::IndexTypeProto", tag = "2")]
525 pub reference_rate_index: i32,
526 #[prost(enumeration = "CouponFrequencyProto", tag = "3")]
528 pub reset_frequency: i32,
529}
530#[allow(clippy::derive_partial_eq_without_eq)]
535#[derive(Clone, PartialEq, ::prost::Message)]
536pub struct MbsExtensionProto {
537 #[prost(string, tag = "1")]
539 pub pool_number: ::prost::alloc::string::String,
540 #[prost(enumeration = "bond::AgencyProto", tag = "2")]
542 pub agency: i32,
543 #[prost(message, optional, tag = "3")]
545 pub wac: ::core::option::Option<super::util::DecimalValueProto>,
546 #[prost(int32, tag = "4")]
548 pub wam: i32,
549 #[prost(message, optional, tag = "5")]
551 pub pass_through_rate: ::core::option::Option<super::util::DecimalValueProto>,
552 #[prost(message, optional, tag = "6")]
554 pub current_factor: ::core::option::Option<super::util::DecimalValueProto>,
555 #[prost(message, optional, tag = "7")]
557 pub original_face_value: ::core::option::Option<super::util::DecimalValueProto>,
558 #[prost(message, optional, tag = "8")]
560 pub current_upb: ::core::option::Option<super::util::DecimalValueProto>,
561 #[prost(message, optional, tag = "9")]
563 pub psa_speed: ::core::option::Option<super::util::DecimalValueProto>,
564}
565#[allow(clippy::derive_partial_eq_without_eq)]
567#[derive(Clone, PartialEq, ::prost::Message)]
568pub struct IndexDetailsProto {
569 #[prost(enumeration = "index::IndexTypeProto", tag = "1")]
570 pub index_type: i32,
571 #[prost(message, repeated, tag = "2")]
577 pub constituents: ::prost::alloc::vec::Vec<SecurityProto>,
578}
579#[allow(clippy::derive_partial_eq_without_eq)]
585#[derive(Clone, PartialEq, ::prost::Message)]
586pub struct EquityDetailsProto {}
587#[allow(clippy::derive_partial_eq_without_eq)]
589#[derive(Clone, PartialEq, ::prost::Message)]
590pub struct CashDetailsProto {
591 #[prost(string, tag = "1")]
593 pub cash_id: ::prost::alloc::string::String,
594}
595#[allow(clippy::derive_partial_eq_without_eq)]
601#[derive(Clone, PartialEq, ::prost::Message)]
602pub struct FxSpotDetailsProto {
603 #[prost(message, optional, boxed, tag = "1")]
605 pub base_currency: ::core::option::Option<::prost::alloc::boxed::Box<SecurityProto>>,
606 #[prost(message, optional, boxed, tag = "2")]
608 pub quote_currency: ::core::option::Option<
609 ::prost::alloc::boxed::Box<SecurityProto>,
610 >,
611 #[prost(string, tag = "3")]
613 pub convention: ::prost::alloc::string::String,
614}
615#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
635#[repr(i32)]
636pub enum AssetClassProto {
637 UnknownAssetClass = 0,
638 FixedIncome = 1,
639 Equity = 2,
640 CashAssetClass = 3,
641 Index = 4,
645 Volatility = 5,
652 Crypto = 6,
656}
657impl AssetClassProto {
658 pub fn as_str_name(&self) -> &'static str {
663 match self {
664 AssetClassProto::UnknownAssetClass => "UNKNOWN_ASSET_CLASS",
665 AssetClassProto::FixedIncome => "FIXED_INCOME",
666 AssetClassProto::Equity => "EQUITY",
667 AssetClassProto::CashAssetClass => "CASH_ASSET_CLASS",
668 AssetClassProto::Index => "INDEX",
669 AssetClassProto::Volatility => "VOLATILITY",
670 AssetClassProto::Crypto => "CRYPTO",
671 }
672 }
673 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
675 match value {
676 "UNKNOWN_ASSET_CLASS" => Some(Self::UnknownAssetClass),
677 "FIXED_INCOME" => Some(Self::FixedIncome),
678 "EQUITY" => Some(Self::Equity),
679 "CASH_ASSET_CLASS" => Some(Self::CashAssetClass),
680 "INDEX" => Some(Self::Index),
681 "VOLATILITY" => Some(Self::Volatility),
682 "CRYPTO" => Some(Self::Crypto),
683 _ => None,
684 }
685 }
686}
687#[allow(clippy::derive_partial_eq_without_eq)]
701#[derive(Clone, PartialEq, ::prost::Message)]
702pub struct IndexCompositionProto {
703 #[prost(string, tag = "1")]
704 pub object_class: ::prost::alloc::string::String,
705 #[prost(string, tag = "2")]
706 pub version: ::prost::alloc::string::String,
707 #[prost(message, optional, tag = "5")]
709 pub uuid: ::core::option::Option<super::util::UuidProto>,
710 #[prost(message, optional, tag = "6")]
711 pub as_of: ::core::option::Option<super::util::LocalTimestampProto>,
712 #[prost(bool, tag = "7")]
713 pub is_link: bool,
714 #[prost(message, optional, tag = "8")]
715 pub valid_from: ::core::option::Option<super::util::LocalTimestampProto>,
716 #[prost(message, optional, tag = "9")]
717 pub valid_to: ::core::option::Option<super::util::LocalTimestampProto>,
718 #[prost(message, optional, tag = "10")]
721 pub index_security: ::core::option::Option<SecurityProto>,
722 #[prost(message, optional, tag = "11")]
726 pub effective_date: ::core::option::Option<super::util::LocalDateProto>,
727 #[prost(message, repeated, tag = "20")]
729 pub constituents: ::prost::alloc::vec::Vec<IndexConstituentProto>,
730 #[prost(message, optional, tag = "21")]
734 pub index_divisor: ::core::option::Option<super::util::DecimalValueProto>,
735 #[prost(string, tag = "31")]
737 pub notes: ::prost::alloc::string::String,
738}
739#[allow(clippy::derive_partial_eq_without_eq)]
741#[derive(Clone, PartialEq, ::prost::Message)]
742pub struct IndexConstituentProto {
743 #[prost(message, optional, tag = "1")]
746 pub security: ::core::option::Option<SecurityProto>,
747 #[prost(message, optional, tag = "2")]
751 pub weight: ::core::option::Option<super::util::DecimalValueProto>,
752 #[prost(message, optional, tag = "3")]
755 pub shares_in_index: ::core::option::Option<super::util::DecimalValueProto>,
756 #[prost(string, tag = "5")]
758 pub currency: ::prost::alloc::string::String,
759}
760#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
761#[repr(i32)]
762pub enum TenorTypeProto {
763 UnknownTenorType = 0,
764 Perpetual = 1,
765 Term = 2,
766}
767impl TenorTypeProto {
768 pub fn as_str_name(&self) -> &'static str {
773 match self {
774 TenorTypeProto::UnknownTenorType => "UNKNOWN_TENOR_TYPE",
775 TenorTypeProto::Perpetual => "PERPETUAL",
776 TenorTypeProto::Term => "TERM",
777 }
778 }
779 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
781 match value {
782 "UNKNOWN_TENOR_TYPE" => Some(Self::UnknownTenorType),
783 "PERPETUAL" => Some(Self::Perpetual),
784 "TERM" => Some(Self::Term),
785 _ => None,
786 }
787 }
788}
789#[allow(clippy::derive_partial_eq_without_eq)]
790#[derive(Clone, PartialEq, ::prost::Message)]
791pub struct TenorProto {
792 #[prost(string, tag = "1")]
793 pub object_class: ::prost::alloc::string::String,
794 #[prost(string, tag = "2")]
795 pub version: ::prost::alloc::string::String,
796 #[prost(string, tag = "5")]
797 pub term_value: ::prost::alloc::string::String,
798 #[prost(enumeration = "TenorTypeProto", tag = "6")]
799 pub tenor_type: i32,
800}