firecracker_http_client/
vsock.rs

1use crate::models::Vsock;
2use crate::FirecrackerError;
3use async_trait::async_trait;
4use validator::Validate;
5
6#[async_trait]
7pub trait VsockOperations {
8    async fn put_vsock(&self, vsock: &Vsock) -> Result<(), FirecrackerError>;
9}
10
11#[async_trait]
12impl VsockOperations for crate::FirecrackerClient {
13    async fn put_vsock(&self, vsock: &Vsock) -> Result<(), FirecrackerError> {
14        vsock.validate()?;
15
16        let url = self.url("vsock")?;
17        let response = self.client.put(url).json(vsock).send().await?;
18
19        if !response.status().is_success() {
20            return Err(FirecrackerError::Api {
21                status_code: response.status().as_u16(),
22                message: response.text().await?,
23            });
24        }
25
26        Ok(())
27    }
28}