mirror of
https://github.com/edera-dev/sprout.git
synced 2026-02-05 03:20:17 +00:00
chore(crates): introduce new config crate for sprout configuration
This commit is contained in:
32
crates/config/src/actions.rs
Normal file
32
crates/config/src/actions.rs
Normal file
@@ -0,0 +1,32 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
/// Configuration for the chainload action.
|
||||
pub mod chainload;
|
||||
|
||||
/// Configuration for the edera action.
|
||||
pub mod edera;
|
||||
|
||||
/// Configuration for the print action.
|
||||
pub mod print;
|
||||
|
||||
/// Declares an action that sprout can execute.
|
||||
/// Actions allow configuring sprout's internal runtime mechanisms with values
|
||||
/// that you can specify via other concepts.
|
||||
///
|
||||
/// Actions are the main work that Sprout gets done, like booting Linux.
|
||||
#[derive(Serialize, Deserialize, Debug, Default, Clone)]
|
||||
pub struct ActionDeclaration {
|
||||
/// Chainload to another EFI application.
|
||||
/// This allows you to load any EFI application, either to boot an operating system
|
||||
/// or to perform more EFI actions and return to sprout.
|
||||
#[serde(default)]
|
||||
pub chainload: Option<chainload::ChainloadConfiguration>,
|
||||
/// Print a string to the EFI console.
|
||||
#[serde(default)]
|
||||
pub print: Option<print::PrintConfiguration>,
|
||||
/// Boot the Edera hypervisor and the root operating system.
|
||||
/// This action is an extension on top of the Xen EFI stub that
|
||||
/// is specific to Edera.
|
||||
#[serde(default, rename = "edera")]
|
||||
pub edera: Option<edera::EderaConfiguration>,
|
||||
}
|
||||
Reference in New Issue
Block a user