Skip to main content

Crate tor_consdiff

Crate tor_consdiff 

Source
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§

DiffCommandIter 🔒
Iterator that wraps a line iterator and returns a sequence of Result<DiffCommand>.
DiffResult
The result of applying one or more diff commands to an input string.

Enums§

DiffCommand 🔒
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.
HunkType 🔒
The operational type of the hunk.
RangeEnd 🔒
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 s looks 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 input at the first directory-signature.

Type Aliases§

Result 🔒
Result type used by this crate