diff --git a/src/cgroup/cgroup.rs b/src/cgroup/cgroup.rs index 1be60d5..0b8af09 100644 --- a/src/cgroup/cgroup.rs +++ b/src/cgroup/cgroup.rs @@ -1,4 +1,5 @@ use std::{ + fmt, fs::{self, File}, io::{Read, Write}, path::PathBuf, @@ -148,7 +149,7 @@ impl CGroup { fn get_limit_value(&self, name: &str) -> Result, std::io::Error> where - T: FromStr, + T: FromStr + fmt::Display, { let value = self.read(name)?; diff --git a/src/cgroup/limit_value.rs b/src/cgroup/limit_value.rs index d114247..e8fd755 100644 --- a/src/cgroup/limit_value.rs +++ b/src/cgroup/limit_value.rs @@ -1,9 +1,9 @@ -use std::str::FromStr; +use std::{fmt, str::FromStr}; #[derive(Debug)] pub enum CGroupLimitValue where - T: FromStr, + T: FromStr + std::fmt::Display, { Max, Value(T), @@ -14,7 +14,7 @@ pub struct ParseCGroupLimitValueError; impl FromStr for CGroupLimitValue where - T: FromStr, + T: FromStr + std::fmt::Display, { type Err = ParseCGroupLimitValueError; @@ -30,3 +30,15 @@ where } } } + +impl fmt::Display for CGroupLimitValue +where + T: FromStr + fmt::Display, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + CGroupLimitValue::Max => write!(f, "max"), + CGroupLimitValue::Value(value) => write!(f, "{value}"), + } + } +}