Skip to main content

agent_can/daemon/
config.rs

1use crate::protocol::ConnectRequest;
2use serde::{Deserialize, Serialize};
3use std::path::Path;
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct DaemonConfig {
7    pub connect: ConnectRequest,
8}
9
10pub fn write_daemon_config(path: &Path, config: &DaemonConfig) -> Result<(), String> {
11    let payload =
12        serde_json::to_vec(config).map_err(|err| format!("failed to serialize config: {err}"))?;
13    std::fs::write(path, payload)
14        .map_err(|err| format!("failed to write daemon config '{}': {err}", path.display()))
15}
16
17pub fn read_daemon_config(path: &Path) -> Result<DaemonConfig, String> {
18    let payload = std::fs::read(path)
19        .map_err(|err| format!("failed to read daemon config '{}': {err}", path.display()))?;
20    serde_json::from_slice(&payload)
21        .map_err(|err| format!("failed to decode daemon config '{}': {err}", path.display()))
22}