Skip to content

Commit

Permalink
Remove manual implementation (paritytech#14096)
Browse files Browse the repository at this point in the history
  • Loading branch information
skunert authored and nathanwhit committed Jul 19, 2023
1 parent 1a2cff4 commit a2dda85
Showing 1 changed file with 2 additions and 31 deletions.
33 changes: 2 additions & 31 deletions primitives/runtime/src/curve.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,46 +22,17 @@ use crate::{
Perbill,
};
use core::ops::Sub;
use scale_info::TypeInfo;

/// Piecewise Linear function in [0, 1] -> [0, 1].
#[derive(PartialEq, Eq, sp_core::RuntimeDebug)]
#[derive(PartialEq, Eq, sp_core::RuntimeDebug, TypeInfo)]
pub struct PiecewiseLinear<'a> {
/// Array of points. Must be in order from the lowest abscissas to the highest.
pub points: &'a [(Perbill, Perbill)],
/// The maximum value that can be returned.
pub maximum: Perbill,
}

// This can be replaced with
// #[derive(scale_info::TypeInfo)]
// #[scale_info(skip_type_params(S))]
// again once this issue is fixed in the rust compiler: https://github.com/rust-lang/rust/issues/96956
// Tracking issues: https://github.com/paritytech/substrate/issues/11915
impl scale_info::TypeInfo for PiecewiseLinear<'static> {
type Identity = Self;
fn type_info() -> ::scale_info::Type {
scale_info::Type::builder()
.path(scale_info::Path::new("PiecewiseLinear", "sp_runtime::curve"))
.type_params(crate::Vec::new())
.docs(&["Piecewise Linear function in [0, 1] -> [0, 1]."])
.composite(
scale_info::build::Fields::named()
.field(|f| {
f.ty::<&'static[(Perbill, Perbill)]>()
.name("points")
.type_name("&'static[(Perbill, Perbill)]")
.docs(&["Array of points. Must be in order from the lowest abscissas to the highest."])
})
.field(|f| {
f.ty::<Perbill>()
.name("maximum")
.type_name("Perbill")
.docs(&["The maximum value that can be returned."])
}),
)
}
}

fn abs_sub<N: Ord + Sub<Output = N> + Clone>(a: N, b: N) -> N where {
a.clone().max(b.clone()) - a.min(b)
}
Expand Down

0 comments on commit a2dda85

Please sign in to comment.