pub struct GroupFilter { /* private fields */ }Expand description
A consumer group’s filter policy. Build it with ConsumerGroup::filter.
Every verb needs a managed backend that serves the filter catalog.
Implementations§
Source§impl GroupFilter
impl GroupFilter
Sourcepub async fn configure(
&self,
filter: ConsumerFilter,
) -> Result<FilterBinding, LaserError>
pub async fn configure( &self, filter: ConsumerFilter, ) -> Result<FilterBinding, LaserError>
Give the group filter as its policy. The definition is saved as the
group’s own filter and the group is bound to it in one catalog
transaction. The same digest again keeps the binding. Another digest
on a group that runs a policy is a typed conflict: create a new group
for another policy.
Sourcepub async fn configure_with(
&self,
policy: GroupFilterSpec,
) -> Result<FilterBinding, LaserError>
pub async fn configure_with( &self, policy: GroupFilterSpec, ) -> Result<FilterBinding, LaserError>
configure with a definition or one of the group’s
own revisions.
Sourcepub async fn configure_as(
&self,
operation_id: Option<u128>,
policy: GroupFilterSpec,
) -> Result<FilterBinding, LaserError>
pub async fn configure_as( &self, operation_id: Option<u128>, policy: GroupFilterSpec, ) -> Result<FilterBinding, LaserError>
configure_with under a caller-chosen
operation id, so a caller that records the id first resumes the same
configuration after a crash and reads its first outcome.
Sourcepub async fn get(&self) -> Result<Option<FilterBinding>, LaserError>
pub async fn get(&self) -> Result<Option<FilterBinding>, LaserError>
The active policy, None for an unbound group.
Sourcepub async fn revisions(
&self,
page: u32,
page_size: u32,
) -> Result<FilterRevisionPage, LaserError>
pub async fn revisions( &self, page: u32, page_size: u32, ) -> Result<FilterRevisionPage, LaserError>
One page of the group’s own filter revisions, newest first.
Sourcepub async fn revise(
&self,
expected_revision: u32,
filter: ConsumerFilter,
) -> Result<FilterRevisionRef, LaserError>
pub async fn revise( &self, expected_revision: u32, filter: ConsumerFilter, ) -> Result<FilterRevisionRef, LaserError>
Draft a revision of the group’s own filter. Readers keep running the
active revision. A different digest requires a separate group.
expected_revision must still be the latest.
Sourcepub async fn set_revision_enabled(
&self,
revision: u32,
enabled: bool,
) -> Result<(), LaserError>
pub async fn set_revision_enabled( &self, revision: u32, enabled: bool, ) -> Result<(), LaserError>
Pause or resume a revision of the group’s own filter. A paused active revision refuses new reads, while records already delivered can still be acknowledged.
Sourcepub async fn delete(&self) -> Result<bool, LaserError>
pub async fn delete(&self) -> Result<bool, LaserError>
Delete the group’s own filter with every revision. A bound group is
released first, so its consumers receive every record from their next
poll. Nothing of the filter stays in the catalog. Ok(false) when the
group has no filter of its own.
Sourcepub async fn release(&self) -> Result<FilterBinding, LaserError>
pub async fn release(&self) -> Result<FilterBinding, LaserError>
Release the group’s policy. Its readers then receive every record. A released group may only be configured with the digest it ran.
Sourcepub async fn preview(
&self,
partition_id: u32,
) -> Result<FilterPreviewBuilder<'_>, LaserError>
pub async fn preview( &self, partition_id: u32, ) -> Result<FilterPreviewBuilder<'_>, LaserError>
Preview the active policy over the stored records of one partition. A preview joins no group, stores no offset, and changes no consumer state.
Sourcepub async fn test(
&self,
payload: impl Into<Vec<u8>>,
headers: Vec<FilterHeader>,
) -> Result<FilterTestResult, LaserError>
pub async fn test( &self, payload: impl Into<Vec<u8>>, headers: Vec<FilterHeader>, ) -> Result<FilterTestResult, LaserError>
Evaluate the active policy against one supplied record and explain the verdict. Nothing is read from a stream and nothing is stored.
Auto Trait Implementations§
impl !RefUnwindSafe for GroupFilter
impl !UnwindSafe for GroupFilter
impl Freeze for GroupFilter
impl Send for GroupFilter
impl Sync for GroupFilter
impl Unpin for GroupFilter
impl UnsafeUnpin for GroupFilter
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.