2021-10-04 17:47:21 +08:00
|
|
|
use crate::{entities::doc::Revision, errors::DocResult, services::ws::DocumentWebSocket, sql_tables::RevState};
|
|
|
|
|
|
2021-10-01 19:39:08 +08:00
|
|
|
use tokio::sync::oneshot;
|
|
|
|
|
|
2021-10-07 20:46:29 +08:00
|
|
|
pub type PendingRevSender = oneshot::Sender<DocResult<()>>;
|
|
|
|
|
pub type PendingRevReceiver = oneshot::Receiver<DocResult<()>>;
|
2021-10-01 19:39:08 +08:00
|
|
|
|
2021-10-07 20:46:29 +08:00
|
|
|
pub struct RevisionContext {
|
|
|
|
|
pub revision: Revision,
|
2021-10-01 19:39:08 +08:00
|
|
|
pub state: RevState,
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-07 20:46:29 +08:00
|
|
|
impl RevisionContext {
|
|
|
|
|
pub fn new(revision: Revision) -> Self {
|
2021-10-01 19:39:08 +08:00
|
|
|
Self {
|
2021-10-07 20:46:29 +08:00
|
|
|
revision,
|
2021-10-01 19:39:08 +08:00
|
|
|
state: RevState::Local,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-07 20:46:29 +08:00
|
|
|
pub(crate) struct PendingRevId {
|
|
|
|
|
pub rev_id: i64,
|
|
|
|
|
pub sender: PendingRevSender,
|
|
|
|
|
}
|
2021-10-01 19:39:08 +08:00
|
|
|
|
2021-10-07 20:46:29 +08:00
|
|
|
impl PendingRevId {
|
|
|
|
|
pub(crate) fn new(rev_id: i64, sender: PendingRevSender) -> Self { Self { rev_id, sender } }
|
2021-10-01 19:39:08 +08:00
|
|
|
}
|