pub struct TempProjectBuilder { /* private fields */ }Expand description
Builder for TempProject.
§Example
use dev_fixtures::TempProject;
let _ = TempProject::new()
.with_file("a.txt", "hello")
.with_bytes("b.bin", vec![1, 2, 3])
.build()
.unwrap();Implementations§
Source§impl TempProjectBuilder
impl TempProjectBuilder
Sourcepub fn with_file(
self,
relative_path: impl Into<PathBuf>,
contents: impl Into<String>,
) -> Self
pub fn with_file( self, relative_path: impl Into<PathBuf>, contents: impl Into<String>, ) -> Self
Stage a UTF-8 text file at relative_path inside the temp project.
Examples found in repository?
examples/temp_project.rs (lines 18-21)
16fn main() {
17 let project = TempProject::new()
18 .with_file(
19 "Cargo.toml",
20 "[package]\nname = \"sample\"\nversion = \"0.1.0\"\n",
21 )
22 .with_file("src/lib.rs", "pub fn answer() -> u32 { 42 }\n")
23 .with_file(
24 "README.md",
25 "# sample\n\nGenerated by the dev-fixtures example.\n",
26 )
27 .with_bytes("assets/payload.bin", vec![0u8, 1, 2, 3, 4, 5])
28 .build()
29 .expect("build temp project");
30
31 println!("temp project root: {}", project.path().display());
32 for (rel, bytes) in project.declared_files() {
33 let absolute = project.path().join(rel);
34 let read_ok = fs::metadata(&absolute).is_ok();
35 println!(
36 " {:>4} bytes — declared {:?} — exists on disk: {}",
37 bytes.len(),
38 rel,
39 read_ok
40 );
41 }
42
43 let kept_root = project.path().to_path_buf();
44 drop(project);
45 println!(
46 "after drop: {} still on disk? {}",
47 kept_root.display(),
48 kept_root.exists()
49 );
50}Sourcepub fn with_bytes(
self,
relative_path: impl Into<PathBuf>,
contents: impl Into<Vec<u8>>,
) -> Self
pub fn with_bytes( self, relative_path: impl Into<PathBuf>, contents: impl Into<Vec<u8>>, ) -> Self
Stage a binary file at relative_path inside the temp project.
Examples found in repository?
examples/temp_project.rs (line 27)
16fn main() {
17 let project = TempProject::new()
18 .with_file(
19 "Cargo.toml",
20 "[package]\nname = \"sample\"\nversion = \"0.1.0\"\n",
21 )
22 .with_file("src/lib.rs", "pub fn answer() -> u32 { 42 }\n")
23 .with_file(
24 "README.md",
25 "# sample\n\nGenerated by the dev-fixtures example.\n",
26 )
27 .with_bytes("assets/payload.bin", vec![0u8, 1, 2, 3, 4, 5])
28 .build()
29 .expect("build temp project");
30
31 println!("temp project root: {}", project.path().display());
32 for (rel, bytes) in project.declared_files() {
33 let absolute = project.path().join(rel);
34 let read_ok = fs::metadata(&absolute).is_ok();
35 println!(
36 " {:>4} bytes — declared {:?} — exists on disk: {}",
37 bytes.len(),
38 rel,
39 read_ok
40 );
41 }
42
43 let kept_root = project.path().to_path_buf();
44 drop(project);
45 println!(
46 "after drop: {} still on disk? {}",
47 kept_root.display(),
48 kept_root.exists()
49 );
50}Sourcepub fn build(self) -> Result<TempProject>
pub fn build(self) -> Result<TempProject>
Build the temp project on disk.
Examples found in repository?
examples/temp_project.rs (line 28)
16fn main() {
17 let project = TempProject::new()
18 .with_file(
19 "Cargo.toml",
20 "[package]\nname = \"sample\"\nversion = \"0.1.0\"\n",
21 )
22 .with_file("src/lib.rs", "pub fn answer() -> u32 { 42 }\n")
23 .with_file(
24 "README.md",
25 "# sample\n\nGenerated by the dev-fixtures example.\n",
26 )
27 .with_bytes("assets/payload.bin", vec![0u8, 1, 2, 3, 4, 5])
28 .build()
29 .expect("build temp project");
30
31 println!("temp project root: {}", project.path().display());
32 for (rel, bytes) in project.declared_files() {
33 let absolute = project.path().join(rel);
34 let read_ok = fs::metadata(&absolute).is_ok();
35 println!(
36 " {:>4} bytes — declared {:?} — exists on disk: {}",
37 bytes.len(),
38 rel,
39 read_ok
40 );
41 }
42
43 let kept_root = project.path().to_path_buf();
44 drop(project);
45 println!(
46 "after drop: {} still on disk? {}",
47 kept_root.display(),
48 kept_root.exists()
49 );
50}Trait Implementations§
Source§impl Default for TempProjectBuilder
impl Default for TempProjectBuilder
Source§fn default() -> TempProjectBuilder
fn default() -> TempProjectBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for TempProjectBuilder
impl RefUnwindSafe for TempProjectBuilder
impl Send for TempProjectBuilder
impl Sync for TempProjectBuilder
impl Unpin for TempProjectBuilder
impl UnsafeUnpin for TempProjectBuilder
impl UnwindSafe for TempProjectBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more