pub struct Bucket { /* private fields */ }
Expand description
A bucket to store data in.
Implementations§
Source§impl Bucket
impl Bucket
Sourcepub fn read_record(&self, entry: &str) -> ReadRecordBuilder
pub fn read_record(&self, entry: &str) -> ReadRecordBuilder
Sourcepub fn query(&self, entry: &str) -> QueryBuilder
pub fn query(&self, entry: &str) -> QueryBuilder
Create a record to write to the bucket.
§Arguments
entry
- The entry to write to.
§Returns
Returns a record builder.
use reduct_rs::{ReductClient, ReductError};
use std::time::SystemTime;
use futures_util::StreamExt;
#[tokio::main]
async fn main() -> Result<(), ReductError> {
let client = ReductClient::builder()
.url("https://play.reduct.store")
.api_token("reductstore")
.build();
let bucket = client.get_bucket("datasets").await?;
let query = bucket.query("cats").limit(10).send().await?;
tokio::pin!(query);
while let Some(record) = query.next().await {
let record = record?;
let content_ = record.bytes().await?;
}
Ok(())
}
Source§impl Bucket
impl Bucket
Sourcepub async fn remove_entry(&self, entry: &str) -> Result<(), ReductError>
pub async fn remove_entry(&self, entry: &str) -> Result<(), ReductError>
Sourcepub fn remove_record(&self, entry: &str) -> RemoveRecordBuilder
pub fn remove_record(&self, entry: &str) -> RemoveRecordBuilder
Sourcepub fn remove_batch(&self, entry: &str) -> WriteBatchBuilder
pub fn remove_batch(&self, entry: &str) -> WriteBatchBuilder
Remove records in a batch.
§Arguments
entry
- The entry to remove.
§Returns
Returns a write batch builder.
§Example
use reduct_rs::{ReductClient, ReductError};
#[tokio::main]
async fn main() -> Result<(), ReductError> {
let client = ReductClient::builder()
.url("https://play.reduct.store")
.api_token("reductstore")
.build();
let bucket = client.get_bucket("datasets").await?;
let batch = bucket.remove_batch("cats");
let errors = batch.add_timestamp_us(1000).add_timestamp_us(5000).send().await?;
Ok(())
}
Sourcepub fn remove_query(&self, entry: &str) -> RemoveQueryBuilder
pub fn remove_query(&self, entry: &str) -> RemoveQueryBuilder
Remove records in a query.
§Arguments
entry
- The entry to remove.
§Returns
Returns a remove query builder.
§Example
use reduct_rs::{ReductClient, ReductError};
#[tokio::main]
async fn main() -> Result<(), ReductError> {
let client = ReductClient::builder()
.url("https://play.reduct.store")
.api_token("reductstore")
.build();
let bucket = client.get_bucket("datasets").await?;
let query = bucket.remove_query("cats");
let removed_records = query.start_us(1000).stop_us(5000).send().await?;
Ok(())
}
Source§impl Bucket
impl Bucket
Sourcepub fn update_record(&self, entry: &str) -> UpdateRecordBuilder
pub fn update_record(&self, entry: &str) -> UpdateRecordBuilder
Sourcepub fn update_batch(&self, entry: &str) -> WriteBatchBuilder
pub fn update_batch(&self, entry: &str) -> WriteBatchBuilder
Create a batch to update records in the bucket.
You should use RecordBuilder to create the records to update. Add labels to the record to update. Labels with an empty value will be removed.
§Arguments
entry
- The entry to update.
§Returns
Returns a batch builder.
§Example
use tokio;
use reduct_rs::{ReductClient, ReductError};
use reduct_rs::RecordBuilder;
#[tokio::main]
async fn main() -> Result<(), ReductError> {
let client = ReductClient::builder()
.url("https://play.reduct.store")
.api_token("reductstore")
.build();
let bucket = client.get_bucket("datasets").await?;
let batch = bucket.update_batch("cats");
let record1 = RecordBuilder::new()
.timestamp_us(1000)
.add_label("test".to_string(), "2".to_string())
.add_label("x".to_string(), "".to_string()) // Remove label x
.build();
batch.add_record(record1).send().await?;
Ok(())
}
Source§impl Bucket
impl Bucket
Sourcepub fn write_record(&self, entry: &str) -> WriteRecordBuilder
pub fn write_record(&self, entry: &str) -> WriteRecordBuilder
Create a record to write to the bucket.
§Arguments
entry
- The entry to write to.
§Returns
Returns a record builder.
§Example
use reduct_rs::{ReductClient, ReductError};
use std::time::SystemTime;
#[tokio::main]
async fn main() -> Result<(), ReductError> {
let client = ReductClient::builder()
.url("https://play.reduct.store")
.api_token("reductstore")
.build();
let bucket = client.get_bucket("demo").await?;
let record = bucket.write_record("entry-1").timestamp_us(1000).data("Some data").send().await?;
Ok(())
}
Sourcepub fn write_batch(&self, entry: &str) -> WriteBatchBuilder
pub fn write_batch(&self, entry: &str) -> WriteBatchBuilder
Source§impl Bucket
impl Bucket
Sourcepub fn server_url(&self) -> &str
pub fn server_url(&self) -> &str
URL of the server.
Sourcepub async fn remove(&self) -> Result<(), ReductError>
pub async fn remove(&self) -> Result<(), ReductError>
Sourcepub async fn settings(&self) -> Result<BucketSettings, ReductError>
pub async fn settings(&self) -> Result<BucketSettings, ReductError>
Sourcepub async fn set_settings(
&self,
settings: BucketSettings,
) -> Result<(), ReductError>
pub async fn set_settings( &self, settings: BucketSettings, ) -> Result<(), ReductError>
Sourcepub async fn full_info(&self) -> Result<FullBucketInfo, ReductError>
pub async fn full_info(&self) -> Result<FullBucketInfo, ReductError>
Get full information about the bucket (stats, settings, entries).
Sourcepub async fn info(&self) -> Result<BucketInfo, ReductError>
pub async fn info(&self) -> Result<BucketInfo, ReductError>
Get bucket stats.
Sourcepub async fn rename_entry(
&self,
entry: &str,
new_name: &str,
) -> Result<(), ReductError>
pub async fn rename_entry( &self, entry: &str, new_name: &str, ) -> Result<(), ReductError>
Auto Trait Implementations§
impl Freeze for Bucket
impl !RefUnwindSafe for Bucket
impl Send for Bucket
impl Sync for Bucket
impl Unpin for Bucket
impl !UnwindSafe for Bucket
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more