aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | proto: Remove unused restricted channel msg setDavid Goulet2025-12-101-26/+0
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | Merge branch 'relay-bin-4' into 'main'David Goulet2025-12-102-0/+7
|\ \ \ | | | | | | | | | | | | | | | | arti-relay: Install default ring crypto provider See merge request tpo/core/arti!3539
| * | | arti-relay: install default ring crypto providerSteven Engler2025-12-092-0/+7
| |/ / | | | | | | | | | | | | | | | | | | | | | This is what arti uses, and fixes the warning: ```text WARN tor_rtcompat::impls::rustls: Creating a RustlsRuntime, but no CryptoProvider is installed. The application should call CryptoProvider::install_default() ```
* | | Merge branch 'enc-derive' into 'main'Ian Jackson2025-12-1015-179/+1414
|\ \ \ | | | | | | | | | | | | | | | | tor-netdoc: derive-based netdoc encoder See merge request tpo/core/arti!3535
| * | | tor-netdoc encode: Fix typos in multiplicity check method docsIan Jackson2025-12-101-4/+4
| | | |
| * | | tor-netdoc encode: Enhance explanation of DeterminedMultiplicitySelectorIan Jackson2025-12-101-0/+3
| | | |
| * | | tor-netdoc encode multiplicity: Fix wrong trait refIan Jackson2025-12-101-1/+1
| | | |
| * | | tor-netdoc encode multiplicity: Add a note about omission of intro itemsIan Jackson2025-12-101-1/+1
| | | |
| * | | tor-netdoc Linkify three more typesIan Jackson2025-12-101-1/+1
| | | |
| * | | tor-netdoc Fix docs typoIan Jackson2025-12-101-1/+1
| | | |
| * | | tor-netdoc: Add two TODOs re trait namingIan Jackson2025-12-102-0/+4
| | | |
| * | | tor-netdoc README: Overview of the traitsIan Jackson2025-12-101-0/+38
| | | |
| * | | tor-netdoc README: Replace structure sectionIan Jackson2025-12-101-8/+11
| | | |
| * | | tor-netdoc README: fix description overviewIan Jackson2025-12-101-4/+3
| | | |
| * | | tor-netdoc README: fix spec refIan Jackson2025-12-101-1/+1
| | | |
| * | | tor-netdoc README: fix terminologyIan Jackson2025-12-101-1/+1
| | | |
| * | | tor-netdoc: semver.md: Document new facilitiesIan Jackson2025-12-101-0/+1
| | | |
| * | | tor-netdoc: Apply encoding derive to SharedRandStatusIan Jackson2025-12-101-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I feel that before merging all this, I ought at least to demonstrate that it can be applied to at least one real type! We can unconditionally `#[derive(Deftly)]`. That is simpler, and harmless if no actual deftly derives are applied.
| * | | tor-netdoc: test2: check round-trip encodingIan Jackson2025-12-101-29/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test case documents are often not in canonical form. We don't want to change them to be in canonical form because we want to test parsing edge cases. So, we provide a mangling scheme with in-document notes, and annotate all the documents. Apply suitable annotations to all the documents. Test that the encoded forms are as expected. This reverts commit 05e7b8b60061a7e8a8d004a822cc213d3ea22d47.
| * | | tor-netdoc: test2: implement encoding traits for all test typesIan Jackson2025-12-102-20/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Make this whole module conditional on the encode feature. Apply the derives. Provide the necessary manual implementations for the types where we use `with`.
| * | | tor-netdoc: derive netdoc encoding traitsIan Jackson2025-12-104-0/+487
| | | | | | | | | | | | | | | | | | | | Signature encoding is not yet supported. We need to consider how this will work.
| * | | tor-netdoc: debug: Add a placeholder debug print to all the other derivesIan Jackson2025-12-102-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to recognise `#[deftly(netdoc(debug))]` because otherwise we have to make lots of these attributes conditional. So, implement it for *all* the derives, providing a nugatory debug statement.
| * | | tor-netdoc: parse2: debug: Explain why we use io::stderr()Ian Jackson2025-12-101-0/+2
| | | |
| * | | tor-netdoc: parse2: debug: Fix an error messageIan Jackson2025-12-101-1/+1
| | | | | | | | | | | | | | | | What is being written to here is StderrLock, not a String.
| * | | tor-netdoc: parse2: debug: Fix scoping of netdoc_parseable_derive_debugIan Jackson2025-12-102-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | While testing I discovered that the `#[deftly(netdoc(debug))]` feature (which dumps parsing progress to stderr) didn't compile if the derive was invoked from elsewhere.
| * | | tor-netdoc: derive: F_KEYWORD_REPORT: put concat on the outsideIan Jackson2025-12-101-2/+2
| | | | | | | | | | | | | | | | This makes it possible to use $F_KEYWORD_REPORT within another concat.
| * | | tor-netdoc: derive_common: Break out docs for attrs in flattenIan Jackson2025-12-102-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | Code motion fromk NetdocParseableFields to NetdocFieldsDeriveCommon. This uses the derive-deftly imported doc comment feature.
| * | | tor-netdoc: derive_common: Break out field ordering checkIan Jackson2025-12-102-16/+18
| | | | | | | | | | | | | | | | Code motion from NetdocParseable to NetdocEntireDeriveCommon.
| * | | tor-netdoc: derive_common: Break out item field type definitionsIan Jackson2025-12-102-6/+6
| | | | | | | | | | | | | | | | Code motion from ItemValueParseable to NetdocItemDeriveCommon.
| * | | tor-netdoc: derive_common: Break out main field type definitionsIan Jackson2025-12-102-12/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code motion from NetdocParseable to NetdocEntireDeriveCommon. Code motion from NetdocParseableFields to NetdocFieldsDeriveCommon. Again, the encoder wants exactly this logic.
| * | | tor-netdoc: derive_common: Break out F_KEYWORD_*, F_FLATTEN, F_NORMALIan Jackson2025-12-102-34/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Code motion from NetdocSomeItemsParseableCommon to NetdocSomeItemsDeriveCommon. Encoding wants exactly the same logic.
| * | | tor-netdoc: Introduce new derive_common Rust module with d-d modulesIan Jackson2025-12-102-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There is nothing actually in any of these yet. But it is most convenient to lay out the structure now. We'll move code into these modules in forthcoming commits.
| * | | tor-netdoc: parse2: Rename NetdocParseableCommon d-d moduleIan Jackson2025-12-101-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is only used for structs which contain items, not item value structs. We need a name that reflects this, especially as we are going to add a bunch more modules full of common macro elements.
| * | | tor-netdoc: Break out netdoc_ordering_check into new derive_common.rsIan Jackson2025-12-103-34/+38
| | | |
| * | | tor-netdoc: Drop the allow(unused)Ian Jackson2025-12-101-1/+0
| | | | | | | | | | | | | | | | Now we use all the imports. We're still adding much code, though.
| * | | tor-netdoc: recast Ignored and impl new encoding traitsIan Jackson2025-12-102-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a bit subtle. Ignored is used where we want to see and accept a value (for example, an Item or an Object), but we don't want to emit it. Update the docs and implement the various traits. We need an uninhabited helper type which implements ItemValueEncodable and ItemObjectEncodable but *not* ItemArgument. That prevents the use of Ignored for an argument, which would be wrong because what would we emit to keep the argument parser in step?
| * | | tor-netdoc: encoding: impl new traits for NotPresentIan Jackson2025-12-101-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Per the type-level docs for NotPresent: it's is a placeholder type mostly used when the document variety doesn't have this field. When encoding it, we emit nothing.
| * | | tor-netdoc: encoding: Provide multiplicity moduleIan Jackson2025-12-103-1/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is quite like the one for parse2, but separate for Reasons. Also add a bit of explanation to parse2's multiplicity.rs, about why there are all these different FooSetMethods traits, which the encoder doesn't need.
| * | | tor-netdoc: encoding: Add new traits that we will deriveIan Jackson2025-12-101-0/+99
| | | | | | | | | | | | | | | | And implement them for Void and tuples, as applicable.
| * | | tor-netdoc: Add imports to encode module, for new encode deriveIan Jackson2025-12-102-2/+20
| | | | | | | | | | | | | | | | | | | | Adding these all at the beginning helped me with churn in this branch. The allow(unused) will go away again shortly.
| * | | tor-netdoc: NetdocParseable: Document that BTreeSet is allowedIan Jackson2025-12-102-0/+5
| |/ / | | | | | | | | | | | | | | | | | | When we implemented this we documented it for ItemValueParseable but forgot to do so for NetdocParseable. Add some xrefs to the traits to try to stop similar mistakes.
* | | tor-dirserver: Document nested round-robinsClara Engler2025-12-101-2/+15
| | |
* | | tor-dirserver: Improve download_single's docClara Engler2025-12-101-5/+2
| | |
* | | tor-dirserver: Rename DownloadManager to ConsensusBoundDownloaderClara Engler2025-12-101-13/+13
| | |
* | | tor-dirclient: Remove Downloadable for goodClara Engler2025-12-102-28/+4
| | |
* | | tor-dirclient: Fix Requestable rustdocClara Engler2025-12-101-2/+2
| | |
* | | tor-dirserver: Add doc for TcpConnect errorClara Engler2025-12-101-0/+4
| | |
* | | tor-dirserver: Documentation improvementsClara Engler2025-12-101-3/+5
| | |
* | | tor-dirserver: Replace IO with TcpConnect errorClara Engler2025-12-102-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | This commit replaces `AuthorityCommunicationError::IO` with `AuthorityCommunicationError::TcpConnect` while removing the respective `From<std::io::Error>` implementation, mostly because an IO error is way too generic and in our case, it would only occurr with a failed TCP connection.
* | | tor-dirclient: Improve upon Requestable subtraitsClara Engler2025-12-101-11/+7
| | | | | | | | | | | | | | | | | | | | | This commit removes the unused `Votable` and `Uploadable` traits and changes the `Downloadable` trait to depend on `Requestable` rather the sealed type, as it achieves the same level of sealedness while clearly communicating the hierarchy.