mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-05-07 04:39:10 -07:00
global: wip
This commit is contained in:
@@ -104,7 +104,7 @@ impl From<Cents> for u128 {
|
||||
impl Mul<Cents> for Cents {
|
||||
type Output = Cents;
|
||||
fn mul(self, rhs: Cents) -> Self::Output {
|
||||
Self(self.0 * rhs.0)
|
||||
Self(self.0.checked_mul(rhs.0).unwrap())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ use zerocopy_derive::{FromBytes, Immutable, IntoBytes, KnownLayout};
|
||||
|
||||
use crate::{CheckedSub, copy_first_8bytes};
|
||||
|
||||
use super::{Bitcoin, Cents, Close, Sats, StoredF32, StoredF64};
|
||||
use super::{Bitcoin, Cents, Close, High, Sats, StoredF32, StoredF64};
|
||||
|
||||
#[derive(
|
||||
Debug, Default, Clone, Copy, Deref, FromBytes, Immutable, IntoBytes, KnownLayout, Serialize,
|
||||
@@ -63,6 +63,12 @@ impl From<Close<Dollars>> for Dollars {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<High<Dollars>> for Dollars {
|
||||
fn from(value: High<Dollars>) -> Self {
|
||||
Self(value.0)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<usize> for Dollars {
|
||||
fn from(value: usize) -> Self {
|
||||
Self(value as f64)
|
||||
@@ -131,6 +137,27 @@ impl Div<Bitcoin> for Dollars {
|
||||
}
|
||||
}
|
||||
|
||||
impl Mul<Dollars> for Dollars {
|
||||
type Output = Self;
|
||||
fn mul(self, rhs: Dollars) -> Self::Output {
|
||||
Self::from(Cents::from(self) * Cents::from(rhs))
|
||||
}
|
||||
}
|
||||
|
||||
impl Mul<Close<Dollars>> for Dollars {
|
||||
type Output = Self;
|
||||
fn mul(self, rhs: Close<Dollars>) -> Self::Output {
|
||||
Self::from(Cents::from(self) * Cents::from(*rhs))
|
||||
}
|
||||
}
|
||||
|
||||
impl Mul<Dollars> for Close<Dollars> {
|
||||
type Output = Dollars;
|
||||
fn mul(self, rhs: Dollars) -> Self::Output {
|
||||
Dollars::from(Cents::from(*self) * Cents::from(rhs))
|
||||
}
|
||||
}
|
||||
|
||||
impl Mul<Bitcoin> for Dollars {
|
||||
type Output = Self;
|
||||
fn mul(self, rhs: Bitcoin) -> Self::Output {
|
||||
@@ -138,6 +165,13 @@ impl Mul<Bitcoin> for Dollars {
|
||||
}
|
||||
}
|
||||
|
||||
impl Mul<Bitcoin> for Close<Dollars> {
|
||||
type Output = Dollars;
|
||||
fn mul(self, rhs: Bitcoin) -> Self::Output {
|
||||
*self * Sats::from(rhs)
|
||||
}
|
||||
}
|
||||
|
||||
impl Mul<Sats> for Dollars {
|
||||
type Output = Self;
|
||||
fn mul(self, rhs: Sats) -> Self::Output {
|
||||
@@ -186,6 +220,12 @@ impl From<u128> for Dollars {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<StoredF64> for Dollars {
|
||||
fn from(value: StoredF64) -> Self {
|
||||
Self(*value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Close<Dollars>> for u128 {
|
||||
fn from(value: Close<Dollars>) -> Self {
|
||||
u128::from(*value)
|
||||
|
||||
@@ -207,3 +207,10 @@ impl From<Sats> for ByteView {
|
||||
Self::from(&value)
|
||||
}
|
||||
}
|
||||
|
||||
impl Mul<Sats> for usize {
|
||||
type Output = Sats;
|
||||
fn mul(self, rhs: Sats) -> Self::Output {
|
||||
Self::Output::from(rhs.0 * self as u64)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use std::{
|
||||
fs,
|
||||
io::{self, Read},
|
||||
iter::Sum,
|
||||
ops::Add,
|
||||
path::Path,
|
||||
};
|
||||
@@ -70,3 +71,9 @@ impl Add<Version> for Version {
|
||||
Self(self.0 + rhs.0)
|
||||
}
|
||||
}
|
||||
|
||||
impl Sum for Version {
|
||||
fn sum<I: Iterator<Item = Self>>(iter: I) -> Self {
|
||||
iter.fold(Self::ZERO, Add::add)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user