Skip to main content

SocialGraphBackend

Trait SocialGraphBackend 

Source
pub trait SocialGraphBackend: Send + Sync {
    // Required methods
    fn stats(&self) -> Result<SocialGraphStats>;
    fn users_by_follow_distance(&self, distance: u32) -> Result<Vec<[u8; 32]>>;
    fn follow_distance(&self, pk_bytes: &[u8; 32]) -> Result<Option<u32>>;
    fn follow_list_created_at(&self, owner: &[u8; 32]) -> Result<Option<u64>>;
    fn followed_targets(&self, owner: &[u8; 32]) -> Result<UserSet>;
    fn is_overmuted_user(
        &self,
        user_pk: &[u8; 32],
        threshold: f64,
    ) -> Result<bool>;
    fn snapshot_chunks(
        &self,
        root: &[u8; 32],
        options: &BinaryBudget,
    ) -> Result<Vec<Bytes>>;
    fn ingest_event(&self, event: &Event) -> Result<()>;
    fn query_events(&self, filter: &Filter, limit: usize) -> Result<Vec<Event>>;

    // Provided methods
    fn ingest_events(&self, events: &[Event]) -> Result<()> { ... }
    fn ingest_graph_events(&self, events: &[Event]) -> Result<()> { ... }
}

Required Methods§

Source

fn stats(&self) -> Result<SocialGraphStats>

Source

fn users_by_follow_distance(&self, distance: u32) -> Result<Vec<[u8; 32]>>

Source

fn follow_distance(&self, pk_bytes: &[u8; 32]) -> Result<Option<u32>>

Source

fn follow_list_created_at(&self, owner: &[u8; 32]) -> Result<Option<u64>>

Source

fn followed_targets(&self, owner: &[u8; 32]) -> Result<UserSet>

Source

fn is_overmuted_user(&self, user_pk: &[u8; 32], threshold: f64) -> Result<bool>

Source

fn snapshot_chunks( &self, root: &[u8; 32], options: &BinaryBudget, ) -> Result<Vec<Bytes>>

Source

fn ingest_event(&self, event: &Event) -> Result<()>

Source

fn query_events(&self, filter: &Filter, limit: usize) -> Result<Vec<Event>>

Provided Methods§

Source

fn ingest_events(&self, events: &[Event]) -> Result<()>

Source

fn ingest_graph_events(&self, events: &[Event]) -> Result<()>

Implementations on Foreign Types§

Source§

impl<T> SocialGraphBackend for Arc<T>

Source§

fn stats(&self) -> Result<SocialGraphStats>

Source§

fn users_by_follow_distance(&self, distance: u32) -> Result<Vec<[u8; 32]>>

Source§

fn follow_distance(&self, pk_bytes: &[u8; 32]) -> Result<Option<u32>>

Source§

fn follow_list_created_at(&self, owner: &[u8; 32]) -> Result<Option<u64>>

Source§

fn followed_targets(&self, owner: &[u8; 32]) -> Result<UserSet>

Source§

fn is_overmuted_user(&self, user_pk: &[u8; 32], threshold: f64) -> Result<bool>

Source§

fn snapshot_chunks( &self, root: &[u8; 32], options: &BinaryBudget, ) -> Result<Vec<Bytes>>

Source§

fn ingest_event(&self, event: &Event) -> Result<()>

Source§

fn ingest_events(&self, events: &[Event]) -> Result<()>

Source§

fn ingest_graph_events(&self, events: &[Event]) -> Result<()>

Source§

fn query_events(&self, filter: &Filter, limit: usize) -> Result<Vec<Event>>

Implementors§