pub struct Section(/* private fields */);Expand description
A section in a systemd unit file (e.g., [Unit], [Service])
Implementations§
Source§impl Section
impl Section
Sourcepub fn get_all(&self, key: &str) -> Vec<String>
pub fn get_all(&self, key: &str) -> Vec<String>
Get all values for a key (systemd allows multiple entries with the same key)
Sourcepub fn set(&mut self, key: &str, value: &str)
pub fn set(&mut self, key: &str, value: &str)
Set a value for a key (replaces the first occurrence or adds if it doesn’t exist)
Sourcepub fn add(&mut self, key: &str, value: &str)
pub fn add(&mut self, key: &str, value: &str)
Add a value for a key (appends even if the key already exists)
Sourcepub fn set_list(&mut self, key: &str, values: &[&str])
pub fn set_list(&mut self, key: &str, values: &[&str])
Set a space-separated list value for a key
This is a convenience method for setting list-type directives
(e.g., Wants=, After=). The values will be joined with spaces.
§Example
section.set_list("Wants", &["foo.service", "bar.service"]);
// Results in: Wants=foo.service bar.serviceSourcepub fn get_list(&self, key: &str) -> Vec<String>
pub fn get_list(&self, key: &str) -> Vec<String>
Get a value parsed as a space-separated list
This is a convenience method for getting list-type directives. If the key doesn’t exist, returns an empty vector.
Sourcepub fn get_bool(&self, key: &str) -> Option<bool>
pub fn get_bool(&self, key: &str) -> Option<bool>
Get a value parsed as a boolean
Returns None if the key doesn’t exist or if the value is not a valid boolean.
§Example
let unit = SystemdUnit::from_str("[Service]\nRemainAfterExit=yes\n").unwrap();
let section = unit.get_section("Service").unwrap();
assert_eq!(section.get_bool("RemainAfterExit"), Some(true));Sourcepub fn set_bool(&mut self, key: &str, value: bool)
pub fn set_bool(&mut self, key: &str, value: bool)
Set a boolean value for a key
This is a convenience method that formats the boolean as “yes” or “no”.
§Example
let unit = SystemdUnit::from_str("[Service]\n").unwrap();
let mut section = unit.get_section("Service").unwrap();
section.set_bool("RemainAfterExit", true);
assert_eq!(section.get("RemainAfterExit"), Some("yes".to_string()));Sourcepub fn remove_all(&mut self, key: &str)
pub fn remove_all(&mut self, key: &str)
Remove all entries with the given key
Sourcepub fn syntax(&self) -> &SyntaxNode<Lang>
pub fn syntax(&self) -> &SyntaxNode<Lang>
Get the raw syntax node