LCOV - differential code coverage report
Current view: top level - pageserver/src - trace.rs (source / functions) Coverage Total Hit CBC
Current: f6946e90941b557c917ac98cd5a7e9506d180f3e.info Lines: 100.0 % 18 18 18
Current Date: 2023-10-19 02:04:12 Functions: 100.0 % 4 4 4
Baseline: c8637f37369098875162f194f92736355783b050.info
Baseline Date: 2023-10-18 20:25:20

           TLA  Line data    Source code
       1                 : use bytes::Bytes;
       2                 : use camino::Utf8PathBuf;
       3                 : use std::{
       4                 :     fs::{create_dir_all, File},
       5                 :     io::{BufWriter, Write},
       6                 : };
       7                 : 
       8                 : pub struct Tracer {
       9                 :     writer: BufWriter<File>,
      10                 : }
      11                 : 
      12                 : impl Drop for Tracer {
      13 CBC           4 :     fn drop(&mut self) {
      14               4 :         self.flush()
      15               4 :     }
      16                 : }
      17                 : 
      18                 : impl Tracer {
      19               4 :     pub fn new(path: Utf8PathBuf) -> Self {
      20               4 :         let parent = path.parent().expect("failed to parse parent path");
      21               4 :         create_dir_all(parent).expect("failed to create trace dir");
      22               4 : 
      23               4 :         let file = File::create(path).expect("failed to create trace file");
      24               4 :         Tracer {
      25               4 :             writer: BufWriter::new(file),
      26               4 :         }
      27               4 :     }
      28                 : 
      29             316 :     pub fn trace(&mut self, msg: &Bytes) {
      30             316 :         self.writer.write_all(msg).expect("failed to write trace");
      31             316 :     }
      32                 : 
      33               4 :     pub fn flush(&mut self) {
      34               4 :         self.writer.flush().expect("failed to flush trace file");
      35               4 :     }
      36                 : }
        

Generated by: LCOV version 2.1-beta