use serde::{Deserialize, Serialize};
use std::num::NonZeroU64;
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub enum CorePlacement {
#[serde(rename = "none")]
Off,
#[default]
Soft,
SoftShares,
Pinned,
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub enum CorePriority {
#[default]
Raised,
Normal,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
#[serde(default, deny_unknown_fields)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct CorePreferences {
pub placement: CorePlacement,
pub priority: CorePriority,
pub memory_bytes: Option<NonZeroU64>,
}