use std::collections::HashMap;
use std::sync::{Arc, Mutex};
use crate::document::DocumentId;
use crate::entry::LogId;
use crate::hash::Hash;
use crate::identity::PublicKey;
use crate::operation::OperationId;
use crate::schema::SchemaId;
use crate::test_utils::memory_store::{PublishedOperation, StorageEntry};
type PublickeyLogId = String;
type Log = (PublicKey, LogId, SchemaId, DocumentId);
#[derive(Default, Debug, Clone)]
pub struct MemoryStore {
pub logs: Arc<Mutex<HashMap<PublickeyLogId, Log>>>,
pub entries: Arc<Mutex<HashMap<Hash, StorageEntry>>>,
pub operations: Arc<Mutex<HashMap<OperationId, PublishedOperation>>>,
}