firecracker_sdk/domain/config/
mod.rs1use std::{collections::HashMap, path::PathBuf};
2
3use serde::Serialize;
4
5use crate::api::startup::FirecrackerStartup;
6
7#[derive(Serialize)]
8pub struct FirecrackerConfiguration {
9 pub(crate) startup_config: FirecrackerStartup,
10 pub(crate) boot_source: BootSource,
11 pub(crate) drives: Drives,
12}
13
14impl FirecrackerConfiguration {
15 pub fn kernel_image_path(&self) -> PathBuf {
16 self.boot_source.kernel_image_path.clone()
17 }
18
19 pub fn drive_path(&self) -> PathBuf {
20 self.drives.path_on_host.clone()
21 }
22}
23
24#[derive(Serialize)]
25pub(crate) struct BootSource {
26 pub(crate) kernel_image_path: PathBuf,
27 pub(crate) boot_args: HashMap<String, String>,
28}
29
30#[derive(Serialize)]
31pub(crate) struct Drives {
32 pub(crate) drive_id: String,
33 pub(crate) path_on_host: PathBuf,
34 pub(crate) is_root_device: bool,
35 pub(crate) is_read_only: bool,
36}