summaryrefslogtreecommitdiffstats
path: root/vendor/proptest/src/path.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
commitef24de24a82fe681581cc130f342363c47c0969a (patch)
tree0d494f7e1a38b95c92426f58fe6eaa877303a86c /vendor/proptest/src/path.rs
parentReleasing progress-linux version 1.74.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-ef24de24a82fe681581cc130f342363c47c0969a.tar.xz
rustc-ef24de24a82fe681581cc130f342363c47c0969a.zip
Merging upstream version 1.75.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/proptest/src/path.rs')
-rw-r--r--vendor/proptest/src/path.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/vendor/proptest/src/path.rs b/vendor/proptest/src/path.rs
new file mode 100644
index 000000000..76242817d
--- /dev/null
+++ b/vendor/proptest/src/path.rs
@@ -0,0 +1,55 @@
+//! Strategies for generating [`PathBuf`] and related path types.
+//!
+//! [`PathParams`] in this module is used as the argument to the
+//! [`Arbitrary`](crate::arbitrary::Arbitrary) implementation for [`PathBuf`].
+
+use crate::{collection::SizeRange, string::StringParam};
+
+/// Parameters for the [`Arbitrary`] implementation for [`PathBuf`].
+///
+/// By default, this generates paths with 0 to 8 components uniformly at random, each of which is a
+/// default [`StringParam`].
+#[derive(Clone, Debug, PartialEq, Eq, Hash)]
+pub struct PathParams {
+ /// The number of components in the path.
+ components: SizeRange,
+ /// The regular expression to generate individual components.
+ component_regex: StringParam,
+}
+
+impl PathParams {
+ /// Gets the number of components in the path.
+ pub fn components(&self) -> SizeRange {
+ self.components.clone()
+ }
+
+ /// Sets the number of components in the path.
+ pub fn with_components(mut self, components: impl Into<SizeRange>) -> Self {
+ self.components = components.into();
+ self
+ }
+
+ /// Gets the regular expression to generate individual components.
+ pub fn component_regex(&self) -> StringParam {
+ self.component_regex
+ }
+
+ /// Sets the regular expression to generate individual components.
+ pub fn with_component_regex(
+ mut self,
+ component_regex: impl Into<StringParam>,
+ ) -> Self {
+ self.component_regex = component_regex.into();
+ self
+ }
+}
+
+impl Default for PathParams {
+ fn default() -> Self {
+ Self {
+ components: (0..8).into(),
+ // This is the default regex for `any::<String>()`.
+ component_regex: StringParam::default(),
+ }
+ }
+}