aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/src
Commit message (Collapse)AuthorAgeFilesLines
...
* tor-netdoc: Add RouterDescIntroItemClara Engler2026-04-222-2/+26
| | | | | | | 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-221-1/+1
| | | | | 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-222-0/+34
| | | | | | 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-222-1/+40
| | | | | | | | | | | | | | 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.
* 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-216-2/+9
| |
* | tor-netdoc: DocRelayFlags: add convenience constructorIan Jackson2026-04-211-0/+10
| |
* | tor-netdoc: ns Preamble: derive NetdocEncodableFieldsIan Jackson2026-04-211-0/+1
| |
* | tor-netdoc: ns Preamble: Use ConstructorIan Jackson2026-04-213-1/+16
| |
* | tor-netdoc: ns Preamble: use new deftly cfg approachIan Jackson2026-04-211-10/+8
| |
* | tor-netdoc: DocRelayFlags: rename VoteRepr to NoImplicitReprIan Jackson2026-04-212-5/+5
| |
* | 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-211-1/+15
| | | | | | | | 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-211-0/+13
| |
* | tor-netdoc: impl ItemValueEncodable for NetParams<i32>Ian Jackson2026-04-211-0/+22
| | | | | | | | | | | | Start a new encode_impls module. The pub(super) will be used in a moment.
* | tor-netdoc: ns Lifetime: derive NetdocEncodableFieldsIan Jackson2026-04-211-0/+1
| |
* | tor-netdoc: ns Lifetime: Use ConstructorIan Jackson2026-04-211-5/+19
| |
* | 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-211-2/+3
| |
* | tor-netdoc: Fix type of NotPresent items in ns PreambleIan Jackson2026-04-213-6/+8
| |
* | tor-netdoc: Implement encoding traits for Arc<T>Ian Jackson2026-04-212-0/+34
| |
* | 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
| | |
| * | tor-netdoc: parse2 multiplicity: Add debugging methods to traitsIan Jackson2026-04-132-0/+108
| | |
| * | tor-netdoc: derives debug: Add a missing trait importIan Jackson2026-04-131-0/+2
| | | | | | | | | | | | | | | | | | Without this adding `#[deftly(netdoc(debug))]` can fail to build, because the encoding module doesn't have `io::Write` in its `pub use`. (Unlike parse2, it doesn't have a separate macro prelude.)
* | | tor-netdoc: Support `#[deftly(netdoc(skip))]` in itemsIan Jackson2026-04-204-1/+17
| | | | | | | | | | | | Ie for "arguments" that don't actually appear.
* | | tor-netdoc: Test for IPv6-mapped IPv4 addressIan Jackson2026-04-201-0/+1
| | |
* | | tor-netdoc: Test for `::` host addressIan Jackson2026-04-201-0/+1
| | |
* | | tor-netdoc: Make Nickname have its own parsing error typeIan Jackson2026-04-205-17/+23
| | | | | | | | | | | | | | | | | | | | | | | | This will let us use it in more places, more sensibly. Sadly it means a lot of syntactic vinegar at many of the call sites in the old parser, which has very janky ideas about how errors should work.
* | | tor-netdoc: Tests for InternetHost and HostnameIan Jackson2026-04-201-0/+65
| | |
* | | tor-netdoc: Introduce InternetHost newtypeIan Jackson2026-04-202-1/+52
| | | | | | | | | | | | Tests will come in a moment.
* | | tor-netdoc: Introduce Hostname newtypeIan Jackson2026-04-202-0/+81
| | | | | | | | | | | | Tests will come in a moment.
* | | Merge branch 'p2-misc-exactly-1' into 'main'Clara Engler2026-04-202-3/+6
|\ \ \ | |_|/ |/| | | | | | | | tor-netdoc: derives: Three small improvements See merge request tpo/core/arti!3887
| * | tor-netdoc: derives: Expect an intro itemIan Jackson2026-04-141-0/+1
| | | | | | | | | | | | | | | | | | This can't trigger, but when messing about with some new features, I messed up and got a syntax error here. Let's try this feature out, here.
| * | tor-netdoc: derives: Reformat a long lineIan Jackson2026-04-141-2/+4
| | | | | | | | | | | | No functional change.