28 releases

0.13.0 Sep 20, 2022
0.12.1 Feb 7, 2022
0.11.1 Sep 30, 2021
0.11.0 Jan 27, 2021
0.2.5 Nov 6, 2017

#196 in Magic Beans

Download history 103869/week @ 2024-01-20 111843/week @ 2024-01-27 97812/week @ 2024-02-03 98289/week @ 2024-02-10 106980/week @ 2024-02-17 102371/week @ 2024-02-24 94033/week @ 2024-03-02 102065/week @ 2024-03-09 101699/week @ 2024-03-16 102126/week @ 2024-03-23 114317/week @ 2024-03-30 111536/week @ 2024-04-06 109337/week @ 2024-04-13 107804/week @ 2024-04-20 90222/week @ 2024-04-27 95846/week @ 2024-05-04

424,494 downloads per month
Used in 631 crates (7 directly)

MIT/Apache

65KB
1K SLoC

use hex_literal::hex;
use ethbloom::{Bloom, Input};

use std::str::FromStr;
let bloom = Bloom::from_str(
	"00000000000000000000000000000000\
	00000000100000000000000000000000\
	00000000000000000000000000000000\
	00000000000000000000000000000000\
	00000000000000000000000000000000\
	00000000000000000000000000000000\
	00000002020000000000000000000000\
	00000000000000000000000800000000\
	10000000000000000000000000000000\
	00000000000000000000001000000000\
	00000000000000000000000000000000\
	00000000000000000000000000000000\
	00000000000000000000000000000000\
	00000000000000000000000000000000\
	00000000000000000000000000000000\
	00000000000000000000000000000000"
).unwrap();
let address = hex!("ef2d6d194084c2de36e0dabfce45d046b37d1106");
let topic = hex!("02c69be41d0b7e40352fc85be1cd65eb03d40ef8427a0ca4596b1ead9a00e9fc");

let mut my_bloom = Bloom::default();
assert!(!my_bloom.contains_input(Input::Raw(&address)));
assert!(!my_bloom.contains_input(Input::Raw(&topic)));

my_bloom.accrue(Input::Raw(&address));
assert!(my_bloom.contains_input(Input::Raw(&address)));
assert!(!my_bloom.contains_input(Input::Raw(&topic)));

my_bloom.accrue(Input::Raw(&topic));
assert!(my_bloom.contains_input(Input::Raw(&address)));
assert!(my_bloom.contains_input(Input::Raw(&topic)));
assert_eq!(my_bloom, bloom);

Dependencies

~0.1–0.9MB
~17K SLoC