summaryrefslogtreecommitdiff
path: root/crates/tor-netdoc
Commit message (Collapse)AuthorAgeFilesLines
...
| * tor-netdoc: ItemArgumentParseable for RelayPlatformClara Engler2026-04-222-0/+13
| | | | | | | | | | This commit implements ItemArgumentParseable for RelayPlatform which we will need in the parse2 version of RouterDesc eventually.
| * tor-netdoc: Public SpFingerprintClara Engler2026-04-223-3/+4
| | | | | | | | | | | | | | | | We will need this type in public fields of the router descriptor data type at one point, most notably for the `fingerprint` item. No need to update semver.md because this type is, for whatever reason, already contained there (in main)?
| * tor-netdoc: Test AddrPolicy's parse2 accumulatorClara Engler2026-04-221-0/+58
| | | | | | | | | | This commit adds a test for the recent parse2 accumulator to see whether it accumulates the policies as expected.
| * tor-netdoc: NetdocParseableFields for AddrPolicyClara Engler2026-04-222-2/+31
| | | | | | | | | | | | This commit implements NetdocParseableFields for AddrPolicy, which will be required, because this field accumulates exit policies in a firewall like order, making the use of it necessary.
| * tor-netdoc: NormalItemArgument for AddrPortPatternClara Engler2026-04-222-0/+4
| | | | | | | | | | This commit implements NormalItemArgument for AddrPortPattern because we will need it later for an accumulator.
| * tor-netdoc: Derive PartialEq,Eq for addrpolicy.rsClara Engler2026-04-222-2/+4
| | | | | | | | | | This commit derives PartialEq and Eq for a few types in addrpolicy.rs, as we will need these for a few unit tests later on.
| * tor-netdoc: Add TODO for BTreeSet in RelayFamilyIdsClara Engler2026-04-221-1/+5
| | | | | | | | | | The inner Vec ought to be better of as a BTreeSet as that would save us dedup and sort calls.
| * tor-netdoc: Add dedup() to RelayFamilyIdsClara Engler2026-04-222-0/+6
| | | | | | | | | | We will need this later for outputting RelayFamilyIds in a fashion compatible with the current API.
| * tor-netdoc: Add sort() to RelayFamilyIdsClara Engler2026-04-222-0/+6
| | | | | | | | | | We will need this later for outputting RelayFamilyIds in a fashion compatible with the current API.
| * tor-netdoc: Add ExtraInfoDigestsClara Engler2026-04-223-2/+18
| | | | | | | | | | | | This commit adds the ExtraInfoDigests structure storing the, if present, mandatory SHA-1 hash and optional SHA-256 hash of the extra-info document associated with the router descriptor it is referenced from.
| * tor-netdoc: Add RouterDescIntroItemClara Engler2026-04-223-2/+27
| | | | | | | | | | | | | | This commit adds RouterDescIntroItem which will serve as the introduction item for router descriptors, that is, a line with the keyword "router" followed by the nickname, the IPv4 address, and a few ports.
| * tor-netdoc: Eq for NicknameClara Engler2026-04-222-1/+2
| | | | | | | | | | This derives Eq for Nickname because we will need it for unit tests that will be added later on.
| * tor-netdoc: Add OverloadGeneral typeClara Engler2026-04-223-0/+36
| | | | | | | | | | | | This type comes from the specification and indicates overload information about a relay. We will use it in router descriptors at one point, hence why we are adding it already.
| * tor-netdoc: Test SpFingerprint 10x4 requirementClara Engler2026-04-221-0/+60
| | | | | | | | | | This commit adds a test to verify the 10x4 character requirement for SpFingerprint.
| * tor-netdoc: ItemArgumentParseable for SpFingerprintClara Engler2026-04-221-0/+32
| |
| * tor-netdoc: Speclink for SpFingerprint rustdoc commentClara Engler2026-04-221-0/+2
| |
| * tor-netdoc: Introduce FixedB16UClara Engler2026-04-221-0/+31
| | | | | | | | | | This commit introduces FixedB16U which is a FixedB64 pedant for B16U. It will be required for ExtraInfoDigests.
| * tor-netdoc: Add test for NumericBooleanClara Engler2026-04-221-0/+13
| | | | | | | | | | This commit adds a round-trip test for NumericBoolean to ensure that 0 is false and 1 is true.
| * tor-netdoc: Add NumericBooleanClara Engler2026-04-223-1/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a new type, NumericBoolean, which implements NormalItemArgument in order to be parseable with parse2. It works very simple, namely it can be used to decode/encode a boolean as a `0` (false) or `1` (true) which is found in a few places around tor-netdoc. The reason why this is its own type instead of implementing NormalItemValue for the bool primitive is, that booleans are special numerical types and to be future-proof against other oddities, a separate wrapper type makes most sense.
* | tor-netdoc: Introduce the `incomplete` cargo featureIan Jackson2026-04-212-2/+10
| | | | | | | | | | | | Part of #2492 phase 1. No semver note because this is an experimental feature.
* | tor-netdoc: Make the document type features imply each other and `encode`Ian Jackson2026-04-211-2/+6
|/ | | | | | Part of #2492 phase 1. No semver note because this is an undocumented transitional phase.
* Merge branch 'rust-1.95-warnings' into 'main'Nick Mathewson2026-04-211-1/+1
|\ | | | | | | | | Fix new warnings from Rust 1.95 See merge request tpo/core/arti!3902
| * tor-netdoc: Simplify sort_by to sort_by_keyNick Mathewson2026-04-211-1/+1
| |
* | tor-netdoc: Minimally avoid emitting bad netparams keywordsIan Jackson2026-04-211-1/+36
| | | | | | | | | | See torspec#401 and https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3864#note_3397715
* | tor-netdoc: Fix c&p error in commentIan Jackson2026-04-211-1/+1
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3864#note_3397714
* | tor-netdoc: Move the proto_statuses_parse2_encode module laterIan Jackson2026-04-211-88/+87
| | | | | | | | | | | | | | Now it follows, rather than precedes, the parse2_impls and encode_impls modules that it imports things from. Pure code motion apart from deleting the todo.
* | tor-netdoc: ns Premable: add missing field known_flagsIan Jackson2026-04-217-2/+10
| |
* | tor-netdoc: DocRelayFlags: add convenience constructorIan Jackson2026-04-212-0/+11
| |
* | tor-netdoc: ns Preamble: derive NetdocEncodableFieldsIan Jackson2026-04-212-0/+2
| |
* | tor-netdoc: ns Preamble: Use ConstructorIan Jackson2026-04-214-1/+17
| |
* | tor-netdoc: ns Preamble: use new deftly cfg approachIan Jackson2026-04-211-10/+8
| |
* | tor-netdoc: DocRelayFlags: rename VoteRepr to NoImplicitReprIan Jackson2026-04-213-5/+6
| |
* | tor-netdoc: DocRelayFlags: Provide encoderIan Jackson2026-04-211-3/+37
| |
* | tor-netdoc: DocRelayFlags: rename helper structIan Jackson2026-04-212-8/+8
| | | | | | | | This is going to be used for encoding too.
* | tor-netdoc: impl NetdocEncodableFields for ProtoStatusesIan Jackson2026-04-212-1/+16
| | | | | | | | We don't need the helper struct for this.
* | tor-netdoc: Split out proto_statuses_parse2_encode moduleIan Jackson2026-04-211-9/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We're going to want this macrology to generate a encoder implmeentation too. It's most convenient to make this its own module, separating it from parse2_impls. Enable the module if encoding is enabled, decorating its parsing-related contents with the appropriate cfg. Use pub(super) to export the encoding-related imports, so that we don't end up with endlessly duplicated import lists. Now there is place where we can put the encoder.
* | tor-netdoc: impl ItemValueEncodable for tor_protover::ProtocolsIan Jackson2026-04-212-0/+14
| |
* | tor-netdoc: impl ItemValueEncodable for NetParams<i32>Ian Jackson2026-04-212-0/+23
| | | | | | | | | | | | Start a new encode_impls module. The pub(super) will be used in a moment.
* | tor-netdoc: ns Lifetime: derive NetdocEncodableFieldsIan Jackson2026-04-212-0/+2
| |
* | tor-netdoc: ns Lifetime: Use ConstructorIan Jackson2026-04-212-5/+20
| |
* | tor-netdoc: ns Lifetime: use new deftly cfg approachIan Jackson2026-04-211-3/+5
| | | | | | | | This is what we did for authcert.rs and it worked well there.
* | tor-netdoc: ConsensusMethods: derive ItemValueEncodableIan Jackson2026-04-212-2/+4
| |
* | tor-netdoc: Fix type of NotPresent items in ns PreambleIan Jackson2026-04-214-6/+9
| |
* | tor-netdoc: Implement encoding traits for Arc<T>Ian Jackson2026-04-213-0/+35
| |
* | Merge branch 'parse2-more-debug' into 'main'Clara Engler2026-04-215-16/+154
|\ \ | | | | | | | | | | | | Add debugging support to ItemValueParseable derive See merge request tpo/core/arti!3881
| * | tor-netdoc: Add debugging to ItemValueParseable, demo in testIan Jackson2026-04-132-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With cargo test --all-features -p tor-netdoc -- --no-capture test2 the output now contains, amongst many other things: netdoc TestItem parse: item start, "test-item", "N", Some("TEST OBJECT") netdoc TestItem parse: field needed, normal, args=1, "N" netdoc TestItem parse: field optional, normal, args=Option<_>, "" netdoc TestItem parse: field rest, normal, args=Vec<_>, "" netdoc TestItem parse: field object, object, object=1, Some(("TEST OBJECT", Ok(5))) netdoc TestItem parse: item complete Ok
| * | tor-netdoc: Add debugging to ItemValueParseableIan Jackson2026-04-131-1/+16
| | |
| * | tor-netdoc: parse2 derives: use NetdocParseAnyCommon in ItemValueParseableIan Jackson2026-04-131-2/+1
| | | | | | | | | | | | So far this just abolishes a duplicate P.
| * | tor-netdoc: parse2 derives: Break out NetdocParseAnyCommonIan Jackson2026-04-131-13/+21
| | | | | | | | | | | | | | | | | | | | | We're going to want tio reuse dtrace from here in the ItemValueParseable derive (which doesn't use NetdocSomeItemsParseableCommon because it derives for one item type, not a document containing multiple items).
| * | tor-netdoc: parse2: with debug for items parsing, show multiplicityIan Jackson2026-04-131-0/+1
| | |