1#![warn(missing_docs)]
36#![warn(clippy::all)]
37#![warn(clippy::pedantic)]
38#![allow(clippy::module_name_repetitions)]
39#![allow(clippy::missing_errors_doc)]
40#![allow(clippy::missing_panics_doc)]
41#![allow(clippy::must_use_candidate)]
42#![allow(clippy::cast_precision_loss)]
43#![allow(clippy::cast_possible_wrap)]
44#![allow(clippy::cast_sign_loss)]
45#![allow(clippy::cast_possible_truncation)]
46#![allow(clippy::doc_markdown)]
47#![allow(clippy::cast_lossless)]
48#![allow(clippy::similar_names)]
49#![allow(clippy::too_many_lines)]
50#![allow(clippy::unreadable_literal)]
51#![allow(clippy::if_not_else)]
52#![allow(clippy::match_same_arms)]
53#![allow(clippy::uninlined_format_args)]
54#![allow(clippy::struct_field_names)]
55#![allow(clippy::return_self_not_must_use)]
56#![allow(clippy::needless_pass_by_value)]
57#![allow(clippy::items_after_statements)]
58#![allow(clippy::redundant_closure_for_method_calls)]
59#![allow(clippy::unnecessary_unwrap)]
60#![allow(clippy::trivially_copy_pass_by_ref)]
61#![allow(clippy::useless_conversion)]
62#![allow(clippy::unused_self)]
63#![allow(clippy::missing_fields_in_debug)]
64#![allow(clippy::unnecessary_wraps)]
65#![allow(clippy::single_match)]
66#![allow(clippy::unnecessary_map_or)]
67#![allow(clippy::float_cmp)]
68#![allow(clippy::while_let_loop)]
69#![allow(clippy::used_underscore_items)]
70#![allow(clippy::borrowed_box)]
71#![allow(dead_code)]
72
73pub mod cashflows;
74pub mod conventions;
75pub mod curve_instruments;
76pub mod error;
77pub mod indices;
78pub mod instruments;
79pub mod options;
80pub mod pricing;
81pub mod risk;
82pub mod traits;
83pub mod types;
84
85pub mod prelude {
87 pub use crate::cashflows::{
89 AccruedInterestCalculator, CashFlowGenerator, Schedule, ScheduleConfig, StubType,
90 };
91
92 pub use crate::conventions::{BondConventions, BondConventionsBuilder};
94
95 pub use crate::curve_instruments::{
97 day_count_factor, GovernmentCouponBond, GovernmentZeroCoupon, MarketConvention,
98 };
99
100 pub use crate::error::{BondError, BondResult, IdentifierError};
102
103 pub use crate::indices::{
105 ArrearConvention, IndexConventions, IndexFixing, IndexFixingStore, IndexSource,
106 OvernightCompounding, PublicationTime, ShiftType,
107 };
108
109 pub use crate::instruments::{
111 AccelerationOption, CallableBond, CallableBondBuilder, FixedBond, FixedBondBuilder,
112 FixedRateBond, FixedRateBondBuilder, FloatingRateNote, FloatingRateNoteBuilder,
113 SinkingFundBond, SinkingFundBondBuilder, SinkingFundPayment, SinkingFundSchedule,
114 ZeroCouponBond,
115 };
116
117 pub use crate::pricing::{
119 current_yield, current_yield_from_bond, BondPricer, PriceResult, YieldResult, YieldSolver,
120 };
121
122 pub use crate::options::{BinomialTree, HullWhite, ModelError, ShortRateModel};
124
125 pub use crate::risk::{DurationResult, RiskMetrics};
127
128 pub use crate::traits::{
130 AmortizingBond, Bond, BondAnalytics, BondCashFlow, CashFlowType, EmbeddedOptionBond,
131 FixedCouponBond, FloatingCouponBond, InflationLinkedBond,
132 };
133
134 pub use crate::types::{
136 AccruedConvention, AmortizationEntry, AmortizationSchedule, AmortizationType,
137 BondIdentifiers, BondType, CalendarId, CallEntry, CallSchedule, CallType, Cusip, Figi,
138 InflationIndexType, Isin, PriceQuote, PriceQuoteConvention, PutEntry, PutSchedule, PutType,
139 RateIndex, RoundingConvention, SOFRConvention, Sedol, Tenor, YieldConvention,
140 };
141}
142
143pub use error::{BondError, BondResult};
144pub use indices::{
145 ArrearConvention, IndexConventions, IndexFixing, IndexFixingStore, IndexSource,
146 OvernightCompounding, PublicationTime, ShiftType,
147};
148pub use instruments::{
149 AccelerationOption, CallableBond, CallableBondBuilder, FixedBond, FixedBondBuilder,
150 FixedRateBond, FixedRateBondBuilder, FloatingRateNote, FloatingRateNoteBuilder,
151 SinkingFundBond, SinkingFundBondBuilder, SinkingFundPayment, SinkingFundSchedule,
152};