aboutsummaryrefslogtreecommitdiffstats
path: root/src/document/at.rs
Commit message (Collapse)AuthorAgeFilesLines
* document: tell whether a document holds a change without building ittv3 days1-1/+1
| | | | | | | | | | | | | | | With the policy's reads kept, judging a change still costs about one read (some 3.5 µs), and so does judging without a policy: what is left is At::new, which asks get_change_by_hash for each head. Automerge builds the change again from the document's operations to answer, at a cost growing with its history. Screening asks it again for every candidate and every dependency, and sync for heads. Ask by the missing dependencies instead (changes::holds), which look the hash up: one the document holds is not among them. A change queued in the document, waiting for its dependencies, isn't either; but then some are missing, and only then is it asked the slow way. Every check of whether a document holds a change goes through it.
* api: allow reading past versionstv9 days1-0/+249