#[non_exhaustive]pub struct AppendInput {
pub records: AppendRecordBatch,
pub match_seq_num: Option<u64>,
pub fencing_token: Option<FencingToken>,
}Expand description
Input for append operation and
AppendSession::submit.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.records: AppendRecordBatchBatch of records to append atomically.
match_seq_num: Option<u64>Expected sequence number for the first record in the batch.
If unspecified, no matching is performed. If specified and mismatched, the append fails.
fencing_token: Option<FencingToken>Fencing token to match against the stream’s current fencing token.
If unspecified, no matching is performed. If specified and mismatched,
the append fails. A stream defaults to "" as its fencing token.
Implementations§
Source§impl AppendInput
impl AppendInput
Sourcepub fn new(records: AppendRecordBatch) -> Self
pub fn new(records: AppendRecordBatch) -> Self
Create a new AppendInput with the given batch of records.
Examples found in repository?
examples/explicit_trim.rs (lines 26-29)
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let access_token =
9 std::env::var("S2_ACCESS_TOKEN").map_err(|_| "S2_ACCESS_TOKEN env var not set")?;
10 let basin_name: BasinName = std::env::var("S2_BASIN")
11 .map_err(|_| "S2_BASIN env var not set")?
12 .parse()?;
13 let stream_name: StreamName = std::env::var("S2_STREAM")
14 .map_err(|_| "S2_STREAM env var not set")?
15 .parse()?;
16
17 let s2 = S2::new(S2Config::new(access_token))?;
18 let stream = s2.basin(basin_name).stream(stream_name);
19
20 let tail = stream.check_tail().await?;
21 if tail.seq_num == 0 {
22 println!("Empty stream");
23 return Ok(());
24 }
25
26 let input = AppendInput::new(AppendRecordBatch::try_from_iter([CommandRecord::trim(
27 tail.seq_num - 1,
28 )
29 .into()])?);
30 stream.append(input).await?;
31 println!("Trim requested");
32
33 Ok(())
34}Sourcepub fn with_match_seq_num(self, match_seq_num: u64) -> Self
pub fn with_match_seq_num(self, match_seq_num: u64) -> Self
Set the expected sequence number for the first record in the batch.
Sourcepub fn with_fencing_token(self, fencing_token: FencingToken) -> Self
pub fn with_fencing_token(self, fencing_token: FencingToken) -> Self
Set the fencing token to match against the stream’s current fencing token.
Trait Implementations§
Source§impl Clone for AppendInput
impl Clone for AppendInput
Source§fn clone(&self) -> AppendInput
fn clone(&self) -> AppendInput
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AppendInput
impl Debug for AppendInput
Source§impl From<AppendInput> for AppendInput
impl From<AppendInput> for AppendInput
Source§fn from(value: AppendInput) -> Self
fn from(value: AppendInput) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for AppendInput
impl RefUnwindSafe for AppendInput
impl Send for AppendInput
impl Sync for AppendInput
impl Unpin for AppendInput
impl UnwindSafe for AppendInput
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more