Expand description
§tor-consdiff
Restricted ed diff and patch formats for Tor.
§Overview
This crate is part of Arti, a project to implement Tor in Rust. Tor uses a restricted version of the “ed-style” diff format to record the difference between a pair of consensus documents, so that clients can download only the changes since the last document they have.
This crate provides a function to apply one of these diffs to an older consensus document, to get a newer one.
License: MIT OR Apache-2.0
Modules§
- err 🔒
- Declare an error type for the tor-consdiff crate.
Structs§
- Diff
Command 🔒Iter - Iterator that wraps a line iterator and returns a sequence of
Result<DiffCommand>. - Diff
Result - The result of applying one or more diff commands to an input string.
Enums§
- Diff
Command 🔒 - A command that can appear in a diff. Each command tells us to remove zero or more lines, and insert zero or more lines in their place.
- Error
- An error type from the tor-consdiff crate.
- Hunk
Type 🔒 - The operational type of the hunk.
- Range
End 🔒 - A possible value for the end of a range. It can be either a line number, or a dollar sign indicating “end of file”.
Constants§
- CONSENSUS_
SIGNED_ 🔒SHA3_ 256_ HASH_ TAIL - When hashing the signed part of the consensus, append this tail to the end.
- DIRECTORY_
SIGNATURE_ 🔒KEYWORD - The keyword that identifies a directory signature line.
Functions§
- apply_
diff - Apply a given diff to an input text, and return the result from applying that diff.
- apply_
diff_ trivial - Apply a given diff to an input text, and return the result from applying that diff.
- gen_
cons_ diff - Generates a consensus diff.
- gen_
ed_ 🔒diff - Generates an input agnostic ed diff.
- looks_
like_ diff - Return true if
slooks more like a consensus diff than some other kind of document. - parse_
diff_ 🔒header - Given a line iterator, check to make sure the first two lines are a valid diff header as specified in dir-spec.txt.
- split_
directory_ 🔒signatures - Splits
inputat the firstdirectory-signature.
Type Aliases§
- Result 🔒
- Result type used by this crate