firecracker_http_client/
entropy.rs

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