summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/tests/cts/vendor/src/path.rs
blob: aa5bae2e6d5dc08b75a1f66f93cebd41e47c7402 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use std::path::{Path, PathBuf};

/// Construct a [`PathBuf`] from individual [`Path`] components.
///
/// This is a simple and legible way to construct `PathBuf`s that use the system's native path
/// separator character. (It's ugly to see paths mixing `\` and `/`.)
///
/// # Examples
///
/// ```rust
/// # use std::path::Path;
/// # use vendor_webgpu_cts::path::join_path;
/// assert_eq!(&*join_path(["foo", "bar", "baz"]), Path::new("foo/bar/baz"));
/// ```
pub(crate) fn join_path<I, P>(iter: I) -> PathBuf
where
    I: IntoIterator<Item = P>,
    P: AsRef<Path>,
{
    let mut path = PathBuf::new();
    path.extend(iter);
    path
}