global: snapshot

This commit is contained in:
nym21
2025-02-02 23:28:03 +01:00
parent ad34d9d402
commit 1e37d75e49
28 changed files with 660 additions and 359 deletions

View File

@@ -1,3 +1,5 @@
use std::ops::Add;
use derive_deref::{Deref, DerefMut};
use fjall::Slice;
use unsafe_slice_serde::UnsafeSliceSerde;
@@ -60,3 +62,17 @@ impl From<Addressindex> for Slice {
Self::new(value.unsafe_as_slice())
}
}
impl Add<usize> for Addressindex {
type Output = Self;
fn add(self, rhs: usize) -> Self::Output {
Self(self.0 + rhs as u32)
}
}
impl Add<Addressindex> for Addressindex {
type Output = Self;
fn add(self, rhs: Addressindex) -> Self::Output {
Self(self.0 + rhs.0)
}
}

View File

@@ -1,3 +1,5 @@
use std::ops::Add;
use derive_deref::{Deref, DerefMut};
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Deref, DerefMut, Default)]
@@ -50,3 +52,17 @@ impl From<Addresstypeindex> for usize {
value.0 as usize
}
}
impl Add<usize> for Addresstypeindex {
type Output = Self;
fn add(self, rhs: usize) -> Self::Output {
Self(self.0 + rhs as u32)
}
}
impl Add<Addresstypeindex> for Addresstypeindex {
type Output = Self;
fn add(self, rhs: Addresstypeindex) -> Self::Output {
Self(self.0 + rhs.0)
}
}

View File

@@ -24,11 +24,19 @@ impl PartialEq<u64> for Height {
}
}
impl Add<Height> for Height {
type Output = Height;
fn add(self, rhs: Height) -> Self::Output {
Self::from(self.0 + rhs.0)
}
}
impl Add<u32> for Height {
type Output = Height;
fn add(self, rhs: u32) -> Self::Output {
Self::from(*self + rhs)
Self::from(self.0 + rhs)
}
}
@@ -42,7 +50,6 @@ impl Add<usize> for Height {
impl Sub<Height> for Height {
type Output = Height;
fn sub(self, rhs: Height) -> Self::Output {
Self::from(*self - *rhs)
}

View File

@@ -1,4 +1,4 @@
use std::ops::{Add, AddAssign};
use std::ops::{Add, AddAssign, Sub};
use derive_deref::{Deref, DerefMut};
use fjall::Slice;
@@ -24,12 +24,26 @@ impl Add<Txindex> for Txindex {
}
}
impl Add<usize> for Txindex {
type Output = Self;
fn add(self, rhs: usize) -> Self::Output {
Self(self.0 + rhs as u32)
}
}
impl AddAssign<Txindex> for Txindex {
fn add_assign(&mut self, rhs: Txindex) {
self.0 += rhs.0
}
}
impl Sub<Txindex> for Txindex {
type Output = Txindex;
fn sub(self, rhs: Txindex) -> Self::Output {
Self::from(*self - *rhs)
}
}
impl From<u32> for Txindex {
fn from(value: u32) -> Self {
Self(value)

View File

@@ -1,8 +1,8 @@
use std::ops::{Add, AddAssign};
use std::ops::{Add, AddAssign, Sub};
use derive_deref::{Deref, DerefMut};
use super::Vout;
use super::Vin;
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Deref, DerefMut, Default)]
pub struct Txinindex(u64);
@@ -24,19 +24,42 @@ impl Add<Txinindex> for Txinindex {
}
}
impl Add<Vout> for Txinindex {
impl Add<Vin> for Txinindex {
type Output = Self;
fn add(self, rhs: Vout) -> Self::Output {
fn add(self, rhs: Vin) -> Self::Output {
Self(self.0 + u64::from(rhs))
}
}
impl Add<usize> for Txinindex {
type Output = Self;
fn add(self, rhs: usize) -> Self::Output {
Self(self.0 + rhs as u64)
}
}
impl AddAssign<Txinindex> for Txinindex {
fn add_assign(&mut self, rhs: Txinindex) {
self.0 += rhs.0
}
}
impl Sub<Txinindex> for Txinindex {
type Output = Self;
fn sub(self, rhs: Txinindex) -> Self::Output {
Self(self.0 - rhs.0)
}
}
impl From<Txinindex> for u32 {
fn from(value: Txinindex) -> Self {
if value.0 > u32::MAX as u64 {
panic!()
}
value.0 as u32
}
}
impl From<u64> for Txinindex {
fn from(value: u64) -> Self {
Self(value)

View File

@@ -1,4 +1,4 @@
use std::ops::{Add, AddAssign};
use std::ops::{Add, AddAssign, Sub};
use derive_deref::{Deref, DerefMut};
@@ -37,12 +37,35 @@ impl Add<Vout> for Txoutindex {
}
}
impl Add<usize> for Txoutindex {
type Output = Self;
fn add(self, rhs: usize) -> Self::Output {
Self(self.0 + rhs as u64)
}
}
impl AddAssign<Txoutindex> for Txoutindex {
fn add_assign(&mut self, rhs: Txoutindex) {
self.0 += rhs.0
}
}
impl Sub<Txoutindex> for Txoutindex {
type Output = Self;
fn sub(self, rhs: Txoutindex) -> Self::Output {
Self(self.0 - rhs.0)
}
}
impl From<Txoutindex> for u32 {
fn from(value: Txoutindex) -> Self {
if value.0 > u32::MAX as u64 {
panic!()
}
value.0 as u32
}
}
impl From<u64> for Txoutindex {
fn from(value: u64) -> Self {
Self(value)

View File

@@ -4,7 +4,8 @@ use derive_deref::Deref;
pub struct Vin(u32);
impl Vin {
const ZERO: Self = Vin(0_u32);
pub const ZERO: Self = Vin(0);
pub const ONE: Self = Vin(1);
pub fn is_zero(&self) -> bool {
*self == Self::ZERO