nostrdb-rs

nostrdb in rust!
git clone git://jb55.com/nostrdb-rs
Log | Files | Refs | Submodules | README | LICENSE

commit b8d1fd1d6f7ec520b1af992b79220dbea7ccaf30
parent 796a1ce068193cead42202e102d34b677c014731
Author: William Casarin <jb55@jb55.com>
Date:   Sun, 23 Mar 2025 15:30:17 -0700

filter: expose initial buffer size option

Diffstat:
Msrc/filter.rs | 20+++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/filter.rs b/src/filter.rs @@ -95,8 +95,8 @@ impl bindings::ndb_filter { } } -impl Default for bindings::ndb_filter { - fn default() -> Self { +impl bindings::ndb_filter { + fn new(pages: i32) -> Self { let null = null_mut(); let mut filter_data = bindings::ndb_filter { finalized: 0, @@ -116,7 +116,7 @@ impl Default for bindings::ndb_filter { }; unsafe { - bindings::ndb_filter_init(filter_data.as_mut_ptr()); + bindings::ndb_filter_init_with(filter_data.as_mut_ptr(), pages); }; filter_data @@ -124,13 +124,17 @@ impl Default for bindings::ndb_filter { } impl Filter { - #[allow(clippy::new_ret_no_self)] - pub fn new() -> FilterBuilder { + pub fn new_with_capacity(pages: i32) -> FilterBuilder { FilterBuilder { - data: Default::default(), + data: bindings::ndb_filter::new(pages), } } + #[allow(clippy::new_ret_no_self)] + pub fn new() -> FilterBuilder { + Self::new_with_capacity(256) + } + pub fn copy_from<'a, I>(filter: I) -> FilterBuilder where I: IntoIterator<Item = FilterField<'a>>, @@ -315,9 +319,7 @@ impl Default for FilterBuilder { impl FilterBuilder { pub fn new() -> FilterBuilder { - Self { - data: Default::default(), - } + Self::default() } pub fn to_ref(&self) -> &bindings::ndb_filter {