1use serde::{Deserialize, Serialize};
9use std::num::NonZeroU64;
10
11#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
13#[serde(rename_all = "snake_case")]
14#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15pub enum CorePlacement {
16 #[serde(rename = "none")]
17 Off,
18 #[default]
19 Soft,
20 SoftShares,
21 Pinned,
22}
23
24#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
26#[serde(rename_all = "snake_case")]
27#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
28pub enum CorePriority {
29 #[default]
30 Raised,
31 Normal,
32}
33
34#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
36#[serde(default, deny_unknown_fields)]
37#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
38pub struct CorePreferences {
39 pub placement: CorePlacement,
40 pub priority: CorePriority,
41 pub memory_bytes: Option<NonZeroU64>,
43}