eventheader_macros 0.5.0

Rust macros for eventheader-encoded Linux Tracepoints via user_events
Documentation
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

use std::fmt::Write;

pub struct IdentBuilder {
    ident: String,
    base_len: usize,
}

impl IdentBuilder {
    pub fn new(base_name: &str) -> IdentBuilder {
        let mut builder = Self {
            ident: String::with_capacity(base_name.len() + 4),
            base_len: base_name.len(),
        };

        builder.ident.push_str(base_name);

        return builder;
    }

    pub fn current(&self) -> &str {
        return &self.ident;
    }

    pub fn set_suffix(&mut self, suffix: usize) -> &str {
        self.ident.truncate(self.base_len);
        write!(self.ident, "{}", suffix).unwrap();
        return &self.ident;
    }
}