use crate::{FeedDiscoveryKey, PeerId};
use super::state::{ChildDocumentInfo, DocumentFeedInfo};
#[derive(Debug)]
pub(crate) struct BroadcastMessage {
pub(crate) write_feed: Option<DocumentFeedInfo>,
pub(crate) active_feeds: Vec<DocumentFeedInfo>,
pub(crate) inactive_feeds: Option<Vec<DocumentFeedInfo>>,
pub(crate) child_documents: Vec<ChildDocumentInfo>,
}
impl BroadcastMessage {
pub(crate) fn new(
write_feed: Option<DocumentFeedInfo>,
active_feeds: Vec<DocumentFeedInfo>,
inactive_feeds: Option<Vec<DocumentFeedInfo>>,
child_documents: Vec<ChildDocumentInfo>,
) -> Self {
Self {
write_feed,
active_feeds,
inactive_feeds,
child_documents,
}
}
}
#[derive(Debug)]
pub(crate) struct FeedsChangedMessage {
pub(crate) doc_discovery_key: FeedDiscoveryKey,
pub(crate) replaced_feeds: Vec<DocumentFeedInfo>,
pub(crate) feeds_to_create: Vec<DocumentFeedInfo>,
}
impl FeedsChangedMessage {
pub(crate) fn new(
doc_discovery_key: FeedDiscoveryKey,
replaced_feeds: Vec<DocumentFeedInfo>,
feeds_to_create: Vec<DocumentFeedInfo>,
) -> Self {
Self {
doc_discovery_key,
replaced_feeds,
feeds_to_create,
}
}
}
#[derive(Debug)]
pub(crate) struct FeedVerificationMessage {
pub(crate) doc_discovery_key: FeedDiscoveryKey,
pub(crate) feed_discovery_key: FeedDiscoveryKey,
pub(crate) verified: bool,
pub(crate) peer_id: Option<PeerId>,
}
#[derive(Debug)]
pub(crate) struct FeedSyncedMessage {
pub(crate) contiguous_length: u64,
pub(crate) not_created_child_documents: Vec<ChildDocumentInfo>,
}
impl FeedSyncedMessage {
pub(crate) fn new(
contiguous_length: u64,
not_created_child_documents: Vec<ChildDocumentInfo>,
) -> Self {
Self {
contiguous_length,
not_created_child_documents,
}
}
}