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