use core::num::NonZeroUsize;
use nostr::types::RelayUrl;
use crate::MemoryDatabase;
#[derive(Debug)]
pub struct MemoryDatabaseBuilder {
pub(crate) max_events: Option<NonZeroUsize>,
pub(crate) process_nip09: bool,
pub(crate) process_nip62: bool,
pub(crate) relay_url: Option<RelayUrl>,
}
impl Default for MemoryDatabaseBuilder {
fn default() -> Self {
Self {
max_events: None,
process_nip09: true,
process_nip62: true,
relay_url: None,
}
}
}
impl MemoryDatabaseBuilder {
#[inline]
pub fn max_events(mut self, max_events: NonZeroUsize) -> Self {
self.max_events = Some(max_events);
self
}
#[inline]
pub fn process_nip09(mut self, process_nip09: bool) -> Self {
self.process_nip09 = process_nip09;
self
}
#[inline]
pub fn process_nip62(mut self, process_nip62: bool) -> Self {
self.process_nip62 = process_nip62;
self
}
#[inline]
pub fn relay_url(mut self, relay_url: RelayUrl) -> Self {
self.relay_url = Some(relay_url);
self
}
#[inline]
pub fn build(self) -> MemoryDatabase {
MemoryDatabase::from_builder(self)
}
}