Move boolean_bitfield into own crate
This commit is contained in:
parent
9808d5c209
commit
fd1eea561e
@ -8,6 +8,7 @@ authors = ["Paul Hauner <paul@paulhauner.com>"]
|
|||||||
blake2 = "^0.7.1"
|
blake2 = "^0.7.1"
|
||||||
blake2-rfc = "0.2.18"
|
blake2-rfc = "0.2.18"
|
||||||
bls = { git = "https://github.com/sigp/bls" }
|
bls = { git = "https://github.com/sigp/bls" }
|
||||||
|
boolean-bitfield = { path = "boolean-bitfield" }
|
||||||
bytes = ""
|
bytes = ""
|
||||||
crypto-mac = "^0.6.2"
|
crypto-mac = "^0.6.2"
|
||||||
clap = "2.32.0"
|
clap = "2.32.0"
|
||||||
|
6
boolean-bitfield/Cargo.toml
Normal file
6
boolean-bitfield/Cargo.toml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
name = "boolean-bitfield"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Paul Hauner <paul@paulhauner.com>"]
|
||||||
|
|
||||||
|
[dependencies]
|
7
boolean-bitfield/README.md
Normal file
7
boolean-bitfield/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Boolean Bitfield
|
||||||
|
|
||||||
|
A work-in-progress implementation of an unbounded boolean bitfield.
|
||||||
|
|
||||||
|
Based upon a `Vec<u8>`
|
||||||
|
|
||||||
|
Documentation TBC...
|
@ -6,9 +6,7 @@
|
|||||||
* A future implementation should be more efficient,
|
* A future implementation should be more efficient,
|
||||||
* this is just to get the job done for now.
|
* this is just to get the job done for now.
|
||||||
*/
|
*/
|
||||||
extern crate rlp;
|
|
||||||
use std::cmp::max;
|
use std::cmp::max;
|
||||||
use self::rlp::{ RlpStream, Encodable };
|
|
||||||
|
|
||||||
#[derive(Eq)]
|
#[derive(Eq)]
|
||||||
pub struct BooleanBitfield{
|
pub struct BooleanBitfield{
|
||||||
@ -100,17 +98,6 @@ impl Clone for BooleanBitfield {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
impl Encodable for BooleanBitfield {
|
|
||||||
// TODO: ensure this is a sensible method of encoding
|
|
||||||
// the bitfield. Currently, it is treated as a list of
|
|
||||||
// bytes not as a string. I do not have any guidance as
|
|
||||||
// to which method is correct -- don't follow my lead
|
|
||||||
// without seeking authoritative advice.
|
|
||||||
fn rlp_append(&self, s: &mut RlpStream) {
|
|
||||||
s.append(&self.to_be_vec());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
@ -172,16 +159,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_bitfield_rlp_serialization() {
|
|
||||||
let mut b = BooleanBitfield::new();
|
|
||||||
b.set_bit(&15, &true);
|
|
||||||
let e = rlp::encode(&b);
|
|
||||||
assert_eq!(e[0], 130);
|
|
||||||
assert_eq!(e[1], 128);
|
|
||||||
assert_eq!(e[2], 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_bitfield_num_true_bits() {
|
fn test_bitfield_num_true_bits() {
|
||||||
let mut b = BooleanBitfield::new();
|
let mut b = BooleanBitfield::new();
|
@ -1,9 +1,9 @@
|
|||||||
extern crate ethereum_types;
|
extern crate ethereum_types;
|
||||||
extern crate blake2;
|
extern crate blake2;
|
||||||
extern crate crypto_mac;
|
extern crate crypto_mac;
|
||||||
|
extern crate boolean_bitfield;
|
||||||
|
|
||||||
pub mod types;
|
pub mod types;
|
||||||
pub mod bls;
|
pub mod bls;
|
||||||
pub mod test_helpers;
|
pub mod test_helpers;
|
||||||
pub mod boolean_bitfield;
|
|
||||||
pub mod logging;
|
pub mod logging;
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
|
extern crate boolean_bitfield;
|
||||||
|
|
||||||
use super::ethereum_types::{ H256, H160 };
|
use super::ethereum_types::{ H256, H160 };
|
||||||
use super::boolean_bitfield::BooleanBitfield;
|
use self::boolean_bitfield::BooleanBitfield;
|
||||||
|
|
||||||
pub use super::blake2::Blake2s;
|
pub use super::blake2::Blake2s;
|
||||||
pub use super::ethereum_types::U256;
|
pub use super::ethereum_types::U256;
|
||||||
|
Loading…
Reference in New Issue
Block a user