Rather than returning an OpID for every mutation, we now return an `Option<ObjId>`. This is `Some` only when a `make*` operation was applied. This `ObjID` is an opaque type which can be used with any document.
21 lines
473 B
Rust
21 lines
473 B
Rust
use crate::op_tree::OpTreeNode;
|
|
use crate::query::{QueryResult, TreeQuery};
|
|
use std::fmt::Debug;
|
|
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub(crate) struct Len<const B: usize> {
|
|
pub len: usize,
|
|
}
|
|
|
|
impl<const B: usize> Len<B> {
|
|
pub fn new() -> Self {
|
|
Len { len: 0 }
|
|
}
|
|
}
|
|
|
|
impl<const B: usize> TreeQuery<B> for Len<B> {
|
|
fn query_node(&mut self, child: &OpTreeNode<B>) -> QueryResult {
|
|
self.len = child.index.len;
|
|
QueryResult::Finish
|
|
}
|
|
}
|