1 use std::{
2 error::Error,
3 fs::{self, File, OpenOptions},
4 io::{self, Seek, SeekFrom, Write},
5 };
6
main() -> Result<(), Box<dyn Error>>7 fn main() -> Result<(), Box<dyn Error>> {
8 {
9 let mut file = File::open("bar.txt")?;
10
11 assert_eq!(27, file.metadata()?.len());
12
13 assert_eq!(
14 "And stood awhile in thought",
15 &io::read_to_string(&mut file)?
16 );
17
18 file.seek(SeekFrom::Start(11))?;
19
20 assert_eq!("while in thought", &io::read_to_string(&mut file)?);
21
22 assert!(
23 file.write_all(b"Did gyre and gimble in the wabe;\n")
24 .is_err()
25 );
26 }
27
28 assert!(OpenOptions::new().append(true).open("bar.txt").is_err());
29 assert!(File::create("new.txt").is_err());
30 assert!(fs::create_dir("sub2").is_err());
31 assert!(fs::rename("bar.txt", "baz.txt").is_err());
32 assert!(fs::remove_file("bar.txt").is_err());
33 assert!(fs::remove_dir("sub").is_err());
34
35 Ok(())
36 }
37