firecracker_http_client/
vsock.rs1use 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}