summaryrefslogtreecommitdiff
path: root/crates/tor-basic-utils/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Re-run maint/add_warning.Nick Mathewson2024-05-061-2/+2
| | | | This commit is automatically generated.
* Run maint/add_warning.Nick Mathewson2024-03-131-0/+1
|
* tor-basic-utils: Provide PathExt with display_lossy() methodIan Jackson2024-03-051-0/+25
|
* deny clippy::unchecked_duration_subtractiontrinity-1686a2024-02-291-0/+1
|
* tor-basic-utils: Seal IoErrorExtIan Jackson2023-10-101-1/+9
|
* Run maint/add_warning to add lint block everywhereIan Jackson2023-08-231-0/+1
|
* Run add_warnings on all files.Nick Mathewson2023-08-041-2/+2
|
* Merge branch 'clippy-allow' into 'main'Ian Jackson2023-07-111-0/+2
|\ | | | | | | | | clippy: Allow some of our existing code patterns See merge request tpo/core/arti!1396
| * Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-101-0/+2
| |
* | rng docs: Fix two linksIan Jackson2023-07-101-2/+2
| |
* | rng ranges: Provide examples (doctests)Ian Jackson2023-07-101-0/+42
| |
* | rng ranges: Forbid use of panicky Rng::gen_rangeIan Jackson2023-07-101-0/+1
| | | | | | | | Fixes #920
* | rng ranges: Introduce gen_range_infallibleIan Jackson2023-07-101-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | There are a number of places where we generate random Durations in a range which starts at zero. These call sites currently (i) have to write out Duration::ZERO or equivalent, and (ii) would have to use gen_range_checked and expect the result, even though it can be statically proven to be OK. To make this slightly smoother, provide `GenRangeInfallible` and `gen_range_infallible`.
* | rng ranges: Introduce RngExt and gen_range_checkedIan Jackson2023-07-101-0/+27
|/ | | | We will use this in many places instead of gen_range.
* Run add_warning to remove `missing_panics_doc` deny.Nick Mathewson2023-07-061-1/+0
| | | | Closes #950.
* lints: Run maint/add_warning to actually apply new lintsIan Jackson2023-06-211-0/+2
|
* tor-basic-utils: Add RangeBoundsExt trait.Gabriela Moldovan2023-05-131-0/+1
| | | | Signed-off-by: Gabriela Moldovan <[email protected]>
* impl_debug_hex: Fix syntax error in usage templateIan Jackson2023-04-111-1/+1
| | | | Corrects the doc and fixes a rustdoc warning.
* tor-basic-utils: Provide impl_debug_hexIan Jackson2023-03-311-0/+82
|
* Move functionality from tor_basic_utils to tor_async_utilsNick Mathewson2023-03-291-1/+0
| | | | | This commit is mostly code movement; I'd recommend reviewing it with git's `--color-moved` option.
* Introduce and use ends_with_ignore_ascii_caseIan Jackson2023-03-081-1/+6
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1056#note_2884428
* tor-basic-utils: Provide str.strip_suffix_ignore_ascii_caseIan Jackson2023-03-081-0/+44
| | | | We're going to want this for cheaply stripping ".onion" from things.
* Disable clippy::unlinlined-format-argsNick Mathewson2023-01-271-0/+1
| | | | | | | | This warning kind of snuck up on us! (See #748) For now, let's disable it. (I've cleaned it up in a couple of examples, since those are meant to be more idiomatic and user-facing.) Closes #748.
* tor-basic-utils: Provide helper for serde flexible parsingIan Jackson2022-11-211-0/+89
|
* define_accessor_trait: Allow specification of other itemsIan Jackson2022-11-031-1/+10
|
* define_accessor_trait: Allow specification of supertraitsIan Jackson2022-11-031-4/+8
|
* Run add_warnings.Nick Mathewson2022-11-031-0/+1
|
* tor-basic-utils: Provide an implementation of BinaryHeap::retainIan Jackson2022-10-271-0/+22
| | | | | | This is currently nightly-only and is blocked on an unresolved API question: https://github.com/rust-lang/rust/issues/71503
* cargo fmt to remove blank linesIan Jackson2022-10-121-1/+0
| | | | | | | Apparently cargo fmt doesn't like these, which my perl rune didn't delete. This commit is precisely the result of `cargo fmt`.
* Replace all README copies in src/lib.rs with includesIan Jackson2022-10-121-10/+1
| | | | | | | | The feature we want is `#[doc = include_str!("README.md")]`, which is stable since 1.54 and our MSRV is now 1.56. This commit is precisely the result of the following Perl rune: perl -i~ -0777 -pe 's{(^//!(?!.*\@\@).*\n)+}{#![doc = include_str!("../README.md")]\n}m' crates/*/src/lib.rs
* Include a HashSet variant that can be keyed on multiple keys.Nick Mathewson2022-10-031-0/+1
| | | | | | | | | | | Every element in the set has up to N keys, each of which may have differnt types. No value for any key may correspond to more than one element in the set. These properties can be provided, via a macro, for values of N between 1 and $BIG_ENOUGH. We'll use this to implement a type that holds HasRelayIds.
* tor-basic-utils: Provide IoErrorExt is_not_a_directory()Ian Jackson2022-08-251-0/+27
| | | | | We're going to want this functionality, which isn't in the stable stdlib.
* enable doc_auto_cfg feature on every crate when documenting for docs.rstrinity-1686a2022-08-241-0/+1
|
* New "counting filter" iterator helper in tor-basic-utils.Nick Mathewson2022-07-061-0/+1
| | | | | | | This is going to make it simpler to write the code in guardmgr (and later in circmgr) that keeps track of how many relays were rejected for what reason. The latter, in turn, should improve error messages when we're unable to pick a guard or a path.
* Run maint/add_warning crates/*/src/{lib,main}.rsIan Jackson2022-06-231-0/+3
| | | | Update all lint blocks
* Merge branch 'testing-rng' into 'main'Nick Mathewson2022-06-021-0/+1
|\ | | | | | | | | New facility for deterministic and reproducible test PRNGs. See merge request tpo/core/arti!561
| * New facility for deterministic and reproducible test PRNGs.Nick Mathewson2022-06-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | The new `testing_rng()` function is meant as a replacement for thread_rng() for use in unit tests. By default, it uses a randomly seeded RNG, but prints the seed before the test so that you can reproduce any failures that occur. You can override this via the environment to use a previous seed, or by using a deterministic seed for all your tests. Backend for #486.
* | lints: Add let_unit_value allow to all cratesIan Jackson2022-05-311-1/+1
| | | | | | | | | | From running add_warning, with manual picking of the right hunks/lines.
* | lints: Add lint block delimiters to every crateIan Jackson2022-05-311-0/+2
|/ | | | | | This was the result of: maint/add_warning crates/*/src/{lib,main}.rs and then manually curating the results.
* Suppress clippy warnings in tor-basic-utils.Nick Mathewson2022-05-231-0/+1
| | | | These are warnings that we've decided it's okay to suppress elsewhere.
* channel: Provide and use Sink::prepare_send_fromIan Jackson2022-05-231-0/+1
| | | | | | | | | | | | | | | | | | | | This is a general-purpose implementation of the ad-hoc approach currently taken in (eg) crates/tor-proto/src/channel/reactor.rs, with an API intended to defned against the more obvious mistakes. This allows us to separate the two concerns: the channel reactor can focus on handling channel cells and control messages and is over 2.5x shorter. The complexity of the manual sink implementation, and the machinery needed to avoid having to suspend while holding an item, are dealt with separately. That separate implemenation now has proper documentation. (Tests are in the nest commit to avoid this one being even more unwieldy.) We use `extend` to define this as an extension trait. A competitor is `ext` but in my personal projects I have found `extend` slightly better.
* Rename macro_first_nonempty (from macro_coalesce_args)Ian Jackson2022-04-251-2/+2
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/471#note_2798026
* macro_coalesce_args: New helper macroIan Jackson2022-04-251-0/+30
|
* Provide define_accessor_trait and use it to generate CircMgrConfigIan Jackson2022-03-161-0/+68
|
* Move RetryDelay from dirmgr to basic-utils.Nick Mathewson2022-03-161-0/+2
| | | | | This (almost) a pure code-movement commit: it also makes one public function private in order to suppress a warning.
* Revert "humantime_serde_option: New module in tor-basic-utils"Ian Jackson2022-03-141-3/+0
| | | | | | We have upstreamed this code. This reverts commit 6193c9d9742d1d19a45a0ee1c383858201304912.
* humantime_serde_option: New module in tor-basic-utilsIan Jackson2022-03-071-0/+3
| | | | | This will be used to allow our config *builder* structs to be Deserialize.
* tor-basic-utils: copy the README into lib.rsIan Jackson2022-03-041-1/+11
| | | | | | | | | | The doc include rune does not work with our MSRV; it needs 1.54. The alternative would be some kind of cfg() but that would - not provide the crate-level doc on Rust 1.53 - involve the use of cfg_attr Instead, just do it the old way.
* Remove now-obsolete note about location of skip_fmtIan Jackson2022-03-041-5/+0
| | | | Now the diff from the merge base does not contain any hits for ^\+.*bytes
* Move skip_fmt into tor-basic-utilsIan Jackson2022-03-041-0/+37
| | | | | | | Code motion and the minimal mechanical changes. As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/375#note_2783078