From 19f4f29e9a711a1df42490fdf0bef24b67474ebc Mon Sep 17 00:00:00 2001 From: mii443 Date: Thu, 17 Oct 2024 08:35:54 +0000 Subject: [PATCH] add fmt::Display for CGroupLimitValue --- src/cgroup/cgroup.rs | 3 ++- src/cgroup/limit_value.rs | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) 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}"), + } + } +}