Advertisement
Guest User

Untitled

a guest
Oct 13th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. use std::collections::HashMap;
  2. use std::fs;
  3. use std::fs::{File, OpenOptions};
  4. use std::io;
  5. use std::io::Result;
  6. use std::path::PathBuf;
  7.  
  8. pub struct Logger {
  9. log_dir: PathBuf,
  10. fds: HashMap<String, File>,
  11. }
  12.  
  13. impl Logger {
  14. fn get_file(&mut self, target: &str) -> Result<&mut File> {
  15. if !self.fds.contains_key(target) {
  16. let mut file_path = self.log_dir.clone();
  17. file_path.push(&format!("{}.txt", target));
  18. let fd = OpenOptions::new().append(true).open(file_path)?;
  19. self.fds.insert(target.to_owned(), fd);
  20. }
  21. Ok(self.fds.get_mut(target).unwrap())
  22. }
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement