1 use std::{ 2 error::Error, 3 fs::{self, File, OpenOptions}, 4 io::{self, Seek, SeekFrom, Write}, 5 }; 6 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