use std::future::Future;
use http::Method;
use crate::body::NoneBody;
use crate::error::Result;
use crate::response::EmptyResponseProcessor;
use crate::{Client, Ops, Prepared, Request};
pub struct PutVectorBucket;
impl Ops for PutVectorBucket {
type Response = EmptyResponseProcessor;
type Body = NoneBody;
type Query = ();
fn prepare(self) -> Result<Prepared<()>> {
Ok(Prepared {
method: Method::PUT,
..Default::default()
})
}
}
pub trait PutVectorBucketOps {
fn put_vector_bucket(&self) -> impl Future<Output = Result<()>>;
}
impl PutVectorBucketOps for Client {
async fn put_vector_bucket(&self) -> Result<()> {
self.request(PutVectorBucket).await
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn prepare_method() {
let prepared = PutVectorBucket.prepare().unwrap();
assert_eq!(prepared.method, Method::PUT);
assert!(prepared.query.is_none());
assert!(prepared.headers.is_none());
}
}