firecracker_http_client/
cpu.rs

1use crate::FirecrackerError;
2use async_trait::async_trait;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Serialize, Deserialize)]
6pub struct CpuConfig {
7    #[serde(skip_serializing_if = "Option::is_none")]
8    pub template: Option<String>,
9}
10
11#[async_trait]
12pub trait CpuConfigOperations {
13    async fn put_cpu_config(&self, config: &CpuConfig) -> Result<(), FirecrackerError>;
14}
15
16#[async_trait]
17impl CpuConfigOperations for crate::FirecrackerClient {
18    async fn put_cpu_config(&self, config: &CpuConfig) -> Result<(), FirecrackerError> {
19        let url = self.url("cpu-config")?;
20        let response = self.client.put(url).json(config).send().await?;
21
22        if !response.status().is_success() {
23            return Err(FirecrackerError::Api {
24                status_code: response.status().as_u16(),
25                message: response.text().await?,
26            });
27        }
28
29        Ok(())
30    }
31}