use std::fmt::{Debug, Display};
use std::io::Result;
pub type CoreId = u16;
pub type CoreNum = u16;
pub trait OSProcess {
type ProcessIDType: Display + Eq + Copy;
type ThreadIDType: Debug + Eq + Copy;
fn get_process_memory_maps() -> Result<String>;
fn get_process_id() -> Result<Self::ProcessIDType>;
fn get_thread_id() -> Result<Self::ThreadIDType>;
fn get_total_num_cpus() -> CoreNum;
fn bind_current_thread_to_core(core_id: CoreId);
fn bind_current_thread_to_cpuset(core_ids: &[CoreId]);
}