1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
pub mod miner;
pub mod u64;
pub trait NonceProviderBuilder: Default + Sized {
type Provider: NonceProvider<Builder = Self>;
fn new() -> Self {
Self::default()
}
fn finish(self) -> Self::Provider;
}
pub trait NonceProvider: Sized {
type Builder: NonceProviderBuilder<Provider = Self>;
type Error: std::error::Error;
fn builder() -> Self::Builder {
Self::Builder::default()
}
fn nonce(&self, bytes: &[u8], target_score: f64) -> Result<u64, Self::Error>;
}