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-rfc = "0.2.18"
|
||||
bls = { git = "https://github.com/sigp/bls" }
|
||||
boolean-bitfield = { path = "boolean-bitfield" }
|
||||
bytes = ""
|
||||
crypto-mac = "^0.6.2"
|
||||
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,
|
||||
* this is just to get the job done for now.
|
||||
*/
|
||||
extern crate rlp;
|
||||
use std::cmp::max;
|
||||
use self::rlp::{ RlpStream, Encodable };
|
||||
|
||||
#[derive(Eq)]
|
||||
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)]
|
||||
mod tests {
|
||||
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]
|
||||
fn test_bitfield_num_true_bits() {
|
||||
let mut b = BooleanBitfield::new();
|
@ -1,9 +1,9 @@
|
||||
extern crate ethereum_types;
|
||||
extern crate blake2;
|
||||
extern crate crypto_mac;
|
||||
extern crate boolean_bitfield;
|
||||
|
||||
pub mod types;
|
||||
pub mod bls;
|
||||
pub mod test_helpers;
|
||||
pub mod boolean_bitfield;
|
||||
pub mod logging;
|
||||
|
@ -1,5 +1,7 @@
|
||||
extern crate boolean_bitfield;
|
||||
|
||||
use super::ethereum_types::{ H256, H160 };
|
||||
use super::boolean_bitfield::BooleanBitfield;
|
||||
use self::boolean_bitfield::BooleanBitfield;
|
||||
|
||||
pub use super::blake2::Blake2s;
|
||||
pub use super::ethereum_types::U256;
|
||||
|
Loading…
Reference in New Issue
Block a user