exec-server/src/process_id.rs
74 lines
use std::borrow::Borrow;use std::fmt;use std::ops::Deref;use serde::Deserialize;use serde::Serialize;#[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize)]#[serde(transparent)]pub struct ProcessId(String);impl ProcessId { pub fn new(value: impl Into<String>) -> Self { Self(value.into()) } pub fn as_str(&self) -> &str { &self.0 } pub fn into_inner(self) -> String { self.0 }}impl Deref for ProcessId { type Target = str; fn deref(&self) -> &Self::Target { self.as_str() }}impl Borrow<str> for ProcessId { fn borrow(&self) -> &str { self.as_str() }}impl AsRef<str> for ProcessId { fn as_ref(&self) -> &str { self.as_str() }}impl fmt::Display for ProcessId { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { self.0.fmt(f) }}impl From<String> for ProcessId { fn from(value: String) -> Self { Self(value) }}impl From<&str> for ProcessId { fn from(value: &str) -> Self { Self(value.to_string()) }}impl From<&String> for ProcessId { fn from(value: &String) -> Self { Self(value.clone()) }}impl From<ProcessId> for String { fn from(value: ProcessId) -> Self { value.0 }}