pub struct KafkaConsumer<K, V>{ /* private fields */ }Expand description
A client that consumes records from a Kafka cluster.
§Translation notes
The concrete type lets callers dispatch statically: calling a Consumer
method on a KafkaConsumer, or through generic code taking
C: Consumer<K, V>, involves no boxed future. To hold it next to other
consumer implementations behind one type, box it as
DynConsumer.
The consumer is Send but not Sync: it can move to another task or
thread, but it cannot be shared between them. This is the type-level form
of Java’s KafkaConsumer.acquire() guard, which throws
ConcurrentModificationException when a second thread calls into a
consumer another thread is using: every Consumer method Java guards
takes &mut self, and without Sync not even the methods taking &self
can be reached from two threads at once. To reach the consumer from
another task or thread — to call wakeup() while it waits, or to call back
into it from a rebalance listener — take a
ConsumerHandle with
Consumer::handle, which is Send + Sync.
The consumer cannot be shared between threads:
use confluent_kafka::consumer::KafkaConsumer;
fn assert_sync<T: Sync>() {}
assert_sync::<KafkaConsumer<String, String>>();and its getters cannot be called through a shared reference:
use std::collections::HashSet;
use confluent_kafka::common::TopicPartition;
use confluent_kafka::consumer::{Consumer, KafkaConsumer};
fn read_assignment(consumer: &KafkaConsumer<String, String>) -> HashSet<TopicPartition> {
consumer.assignment()
}Implementations§
Source§impl<K, V> KafkaConsumer<K, V>
impl<K, V> KafkaConsumer<K, V>
Sourcepub fn new(
config: ConsumerConfig,
key_deserializer: impl Deserializer<K>,
value_deserializer: impl Deserializer<V>,
) -> Result<Self, Error>
pub fn new( config: ConsumerConfig, key_deserializer: impl Deserializer<K>, value_deserializer: impl Deserializer<V>, ) -> Result<Self, Error>
A consumer is instantiated by providing a set of key-value pairs as
configuration, and a key and a value Deserializer.
Valid configuration strings are documented at ConsumerConfig.
Note: after creating a KafkaConsumer you must always
close it to avoid resource leaks.
§Arguments
config- The consumer configskey_deserializer- The deserializer for key that implementsDeserializer. The configure() method won’t be called in the consumer when the deserializer is passed in directly.value_deserializer- The deserializer for value that implementsDeserializer. The configure() method won’t be called in the consumer when the deserializer is passed in directly.
§Returns
The new consumer.
§Errors
Error::is_local_illegal_argument_errorifgroup.protocolis invalid.Error::is_local_unsupported_operation_errorifgroup.protocolisclassic.- Any error building the consumer from
config.
§Translation notes
The configuration is a built ConsumerConfig, and the deserializers
are not configuration keys. Only group.protocol=consumer (KIP-848) is
supported.
Trait Implementations§
Source§impl<K, V> Consumer<K, V> for KafkaConsumer<K, V>
impl<K, V> Consumer<K, V> for KafkaConsumer<K, V>
Source§fn assignment(&mut self) -> HashSet<TopicPartition>
fn assignment(&mut self) -> HashSet<TopicPartition>
Self::assign then this will simply return the same partitions that
were assigned. If topic subscription was used, then this will give the
set of topic partitions currently assigned to the consumer (which may
be none if the assignment hasn’t happened yet, or the partitions are in
the process of getting reassigned). Read moreSource§fn subscription(&mut self) -> HashSet<String>
fn subscription(&mut self) -> HashSet<String>
Self::subscribe_with_topics or
Self::subscribe_with_topics_listener, or an empty set if no such
call has been made. Read moreSource§fn paused(&mut self) -> HashSet<TopicPartition>
fn paused(&mut self) -> HashSet<TopicPartition>
Self::pause. Read moreSource§fn group_metadata(&mut self) -> Arc<dyn ConsumerGroupMetadata>
fn group_metadata(&mut self) -> Arc<dyn ConsumerGroupMetadata>
Source§fn current_lag(
&mut self,
topic_partition: &TopicPartition,
) -> impl Future<Output = Result<Option<i64>, Error>> + Send
fn current_lag( &mut self, topic_partition: &TopicPartition, ) -> impl Future<Output = Result<Option<i64>, Error>> + Send
None if the
lag is not known, for example if there is no position yet, or if the
end offset is not known yet. Read moreSource§fn metrics(&self) -> MetricsView
fn metrics(&self) -> MetricsView
Source§fn subscribe_with_topics(
&mut self,
topics: Vec<String>,
) -> impl Future<Output = Result<(), Error>> + Send
fn subscribe_with_topics( &mut self, topics: Vec<String>, ) -> impl Future<Output = Result<(), Error>> + Send
Self::assign. If the given list of topics is
empty, it is treated the same as Self::unsubscribe. Read moreSource§fn subscribe_with_topics_listener(
&mut self,
topics: Vec<String>,
listener: Arc<dyn ConsumerRebalanceListener>,
) -> impl Future<Output = Result<(), Error>> + Send
fn subscribe_with_topics_listener( &mut self, topics: Vec<String>, listener: Arc<dyn ConsumerRebalanceListener>, ) -> impl Future<Output = Result<(), Error>> + Send
Self::assign. If the given list of
topics is empty, it is treated the same as Self::unsubscribe. Read moreSource§fn subscribe_with_pattern(
&mut self,
pattern: SubscriptionPattern,
) -> impl Future<Output = Result<(), Error>> + Send
fn subscribe_with_pattern( &mut self, pattern: SubscriptionPattern, ) -> impl Future<Output = Result<(), Error>> + Send
ConsumerConfig::GROUP_PROTOCOL_CONFIG) Read moreSource§fn subscribe_with_pattern_listener(
&mut self,
pattern: SubscriptionPattern,
listener: Arc<dyn ConsumerRebalanceListener>,
) -> impl Future<Output = Result<(), Error>> + Send
fn subscribe_with_pattern_listener( &mut self, pattern: SubscriptionPattern, listener: Arc<dyn ConsumerRebalanceListener>, ) -> impl Future<Output = Result<(), Error>> + Send
ConsumerConfig::GROUP_PROTOCOL_CONFIG). Read moreSource§fn assign(
&mut self,
partitions: Vec<TopicPartition>,
) -> impl Future<Output = Result<(), Error>> + Send
fn assign( &mut self, partitions: Vec<TopicPartition>, ) -> impl Future<Output = Result<(), Error>> + Send
Source§fn unsubscribe(&mut self) -> impl Future<Output = Result<(), Error>> + Send
fn unsubscribe(&mut self) -> impl Future<Output = Result<(), Error>> + Send
Self::subscribe_with_topics or Self::subscribe_with_pattern.
This also clears any partitions directly assigned through
Self::assign. Read moreSource§fn poll(
&mut self,
timeout: Duration,
) -> impl Future<Output = Result<ConsumerRecords<K, V>, Error>> + Send
fn poll( &mut self, timeout: Duration, ) -> impl Future<Output = Result<ConsumerRecords<K, V>, Error>> + Send
Source§fn commit_sync(&mut self) -> impl Future<Output = Result<(), Error>> + Send
fn commit_sync(&mut self) -> impl Future<Output = Result<(), Error>> + Send
Source§fn commit_sync_with_timeout(
&mut self,
timeout: Duration,
) -> impl Future<Output = Result<(), Error>> + Send
fn commit_sync_with_timeout( &mut self, timeout: Duration, ) -> impl Future<Output = Result<(), Error>> + Send
Source§fn commit_sync_with_offsets(
&mut self,
offsets: HashMap<TopicPartition, OffsetAndMetadata>,
) -> impl Future<Output = Result<(), Error>> + Send
fn commit_sync_with_offsets( &mut self, offsets: HashMap<TopicPartition, OffsetAndMetadata>, ) -> impl Future<Output = Result<(), Error>> + Send
Source§fn commit_sync_with_offsets_timeout(
&mut self,
offsets: HashMap<TopicPartition, OffsetAndMetadata>,
timeout: Duration,
) -> impl Future<Output = Result<(), Error>> + Send
fn commit_sync_with_offsets_timeout( &mut self, offsets: HashMap<TopicPartition, OffsetAndMetadata>, timeout: Duration, ) -> impl Future<Output = Result<(), Error>> + Send
Source§fn commit_async(&mut self) -> impl Future<Output = Result<(), Error>> + Send
fn commit_async(&mut self) -> impl Future<Output = Result<(), Error>> + Send
Self::poll for all the subscribed list of topics
and partition. Same as commitAsync(None) Read moreSource§fn commit_async_with_callback(
&mut self,
callback: Arc<dyn OffsetCommitCallback>,
) -> impl Future<Output = Result<(), Error>> + Send
fn commit_async_with_callback( &mut self, callback: Arc<dyn OffsetCommitCallback>, ) -> impl Future<Output = Result<(), Error>> + Send
Source§fn commit_async_with_offsets_callback(
&mut self,
offsets: HashMap<TopicPartition, OffsetAndMetadata>,
callback: Arc<dyn OffsetCommitCallback>,
) -> impl Future<Output = Result<(), Error>> + Send
fn commit_async_with_offsets_callback( &mut self, offsets: HashMap<TopicPartition, OffsetAndMetadata>, callback: Arc<dyn OffsetCommitCallback>, ) -> impl Future<Output = Result<(), Error>> + Send
Source§fn seek_with_offset(
&mut self,
partition: TopicPartition,
offset: i64,
) -> impl Future<Output = Result<(), Error>> + Send
fn seek_with_offset( &mut self, partition: TopicPartition, offset: i64, ) -> impl Future<Output = Result<(), Error>> + Send
Source§fn seek_with_offset_and_metadata(
&mut self,
partition: TopicPartition,
offset_and_metadata: OffsetAndMetadata,
) -> impl Future<Output = Result<(), Error>> + Send
fn seek_with_offset_and_metadata( &mut self, partition: TopicPartition, offset_and_metadata: OffsetAndMetadata, ) -> impl Future<Output = Result<(), Error>> + Send
poll(timeout). If this API is invoked for the same partition more than
once, the latest offset will be used on the next poll(). Note that you
may lose data if this API is arbitrarily used in the middle of
consumption, to reset the fetch offsets. This method allows for setting
the leaderEpoch along with the desired offset. Read moreSource§fn seek_to_beginning(
&mut self,
partitions: &[TopicPartition],
) -> impl Future<Output = Result<(), Error>> + Send
fn seek_to_beginning( &mut self, partitions: &[TopicPartition], ) -> impl Future<Output = Result<(), Error>> + Send
Self::poll or Self::position are called. If no partitions are
provided, seek to the first offset for all of the currently assigned
partitions. Read moreSource§fn seek_to_end(
&mut self,
partitions: &[TopicPartition],
) -> impl Future<Output = Result<(), Error>> + Send
fn seek_to_end( &mut self, partitions: &[TopicPartition], ) -> impl Future<Output = Result<(), Error>> + Send
Self::poll or Self::position are called. If no partitions are
provided, seek to the final offset for all of the currently assigned
partitions. Read moreSource§fn position(
&mut self,
partition: &TopicPartition,
) -> impl Future<Output = Result<i64, Error>> + Send
fn position( &mut self, partition: &TopicPartition, ) -> impl Future<Output = Result<i64, Error>> + Send
Source§fn position_with_timeout(
&mut self,
partition: &TopicPartition,
timeout: Duration,
) -> impl Future<Output = Result<i64, Error>> + Send
fn position_with_timeout( &mut self, partition: &TopicPartition, timeout: Duration, ) -> impl Future<Output = Result<i64, Error>> + Send
Source§fn committed(
&mut self,
partitions: &[TopicPartition],
) -> impl Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndMetadata>>, Error>> + Send
fn committed( &mut self, partitions: &[TopicPartition], ) -> impl Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndMetadata>>, Error>> + Send
Source§fn committed_with_timeout(
&mut self,
partitions: &[TopicPartition],
timeout: Duration,
) -> impl Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndMetadata>>, Error>> + Send
fn committed_with_timeout( &mut self, partitions: &[TopicPartition], timeout: Duration, ) -> impl Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndMetadata>>, Error>> + Send
Source§fn partitions_for(
&mut self,
topic: &str,
) -> impl Future<Output = Result<Vec<PartitionInfo>, Error>> + Send
fn partitions_for( &mut self, topic: &str, ) -> impl Future<Output = Result<Vec<PartitionInfo>, Error>> + Send
Source§fn partitions_for_with_timeout(
&mut self,
topic: &str,
timeout: Duration,
) -> impl Future<Output = Result<Vec<PartitionInfo>, Error>> + Send
fn partitions_for_with_timeout( &mut self, topic: &str, timeout: Duration, ) -> impl Future<Output = Result<Vec<PartitionInfo>, Error>> + Send
Source§fn list_topics(
&mut self,
) -> impl Future<Output = Result<HashMap<String, Vec<PartitionInfo>>, Error>> + Send
fn list_topics( &mut self, ) -> impl Future<Output = Result<HashMap<String, Vec<PartitionInfo>>, Error>> + Send
Source§fn list_topics_with_timeout(
&mut self,
timeout: Duration,
) -> impl Future<Output = Result<HashMap<String, Vec<PartitionInfo>>, Error>> + Send
fn list_topics_with_timeout( &mut self, timeout: Duration, ) -> impl Future<Output = Result<HashMap<String, Vec<PartitionInfo>>, Error>> + Send
Source§fn offsets_for_times(
&mut self,
timestamps_to_search: HashMap<TopicPartition, i64>,
) -> impl Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndTimestamp>>, Error>> + Send
fn offsets_for_times( &mut self, timestamps_to_search: HashMap<TopicPartition, i64>, ) -> impl Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndTimestamp>>, Error>> + Send
None will be returned for
that partition. Read moreSource§fn offsets_for_times_with_timeout(
&mut self,
timestamps_to_search: HashMap<TopicPartition, i64>,
timeout: Duration,
) -> impl Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndTimestamp>>, Error>> + Send
fn offsets_for_times_with_timeout( &mut self, timestamps_to_search: HashMap<TopicPartition, i64>, timeout: Duration, ) -> impl Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndTimestamp>>, Error>> + Send
None will be returned for
that partition. Read moreSource§fn beginning_offsets(
&mut self,
partitions: &[TopicPartition],
) -> impl Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send
fn beginning_offsets( &mut self, partitions: &[TopicPartition], ) -> impl Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send
Source§fn beginning_offsets_with_timeout(
&mut self,
partitions: &[TopicPartition],
timeout: Duration,
) -> impl Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send
fn beginning_offsets_with_timeout( &mut self, partitions: &[TopicPartition], timeout: Duration, ) -> impl Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send
Source§fn end_offsets(
&mut self,
partitions: &[TopicPartition],
) -> impl Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send
fn end_offsets( &mut self, partitions: &[TopicPartition], ) -> impl Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send
read_uncommitted
isolation level, the end offset is the high watermark (that is, the offset of the last
successfully replicated message plus one). For read_committed consumers, the end
offset is the last stable offset (LSO), which is the minimum of the high watermark and
the smallest offset of any open transaction. Finally, if the partition has never been
written to, the end offset is 0. Read moreSource§fn end_offsets_with_timeout(
&mut self,
partitions: &[TopicPartition],
timeout: Duration,
) -> impl Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send
fn end_offsets_with_timeout( &mut self, partitions: &[TopicPartition], timeout: Duration, ) -> impl Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send
read_uncommitted
isolation level, the end offset is the high watermark (that is, the offset of the last
successfully replicated message plus one). For read_committed consumers, the end
offset is the last stable offset (LSO), which is the minimum of the high watermark and
the smallest offset of any open transaction. Finally, if the partition has never been
written to, the end offset is 0. Read moreSource§fn pause(
&mut self,
partitions: &[TopicPartition],
) -> impl Future<Output = Result<(), Error>> + Send
fn pause( &mut self, partitions: &[TopicPartition], ) -> impl Future<Output = Result<(), Error>> + Send
Self::poll will not return any records from these partitions until
they have been resumed using Self::resume. Note that this method
does not affect partition subscription. In particular, it does not cause
a group rebalance when automatic assignment is used. Read moreSource§fn resume(
&mut self,
partitions: &[TopicPartition],
) -> impl Future<Output = Result<(), Error>> + Send
fn resume( &mut self, partitions: &[TopicPartition], ) -> impl Future<Output = Result<(), Error>> + Send
Self::pause. New calls to
Self::poll will return records from these partitions if there are any to be fetched.
If the partitions were not previously paused, this method is a no-op. Read moreSource§fn enforce_rebalance(
&mut self,
) -> impl Future<Output = Result<(), Error>> + Send
fn enforce_rebalance( &mut self, ) -> impl Future<Output = Result<(), Error>> + Send
Self::poll call. Note that this API does not
itself initiate the rebalance, so you must still call Self::poll. If
a rebalance is already in progress this call will be a no-op. If you wish
to force an additional rebalance you must complete the current one by
calling poll before retrying this API. Read moreSource§fn enforce_rebalance_with_reason(
&mut self,
reason: &str,
) -> impl Future<Output = Result<(), Error>> + Send
fn enforce_rebalance_with_reason( &mut self, reason: &str, ) -> impl Future<Output = Result<(), Error>> + Send
Self::poll call. Note that this API does not
itself initiate the rebalance, so you must still call Self::poll. If
a rebalance is already in progress this call will be a no-op. If you wish
to force an additional rebalance you must complete the current one by
calling poll before retrying this API. Read moreSource§fn close(&mut self) -> impl Future<Output = Result<(), Error>> + Send
fn close(&mut self) -> impl Future<Output = Result<(), Error>> + Send
Self::close for
details. Note that Self::wakeup cannot be used to interrupt close. Read moreSource§fn close_with_options(
&mut self,
options: CloseOptions,
) -> impl Future<Output = Result<(), Error>> + Send
fn close_with_options( &mut self, options: CloseOptions, ) -> impl Future<Output = Result<(), Error>> + Send
CloseOptions allows to specify a timeout
and a leave group behavior. If no timeout is specified, the default
timeout of 30 seconds is used. If no leave group behavior is specified,
the default leave group behavior is used. Read moreSource§fn wakeup(&self)
fn wakeup(&self)
WakeupError. If no
thread is blocking in a method which can throw WakeupError, the next call to such a
method will raise it instead. Read moreSource§fn handle(&self) -> ConsumerHandle
fn handle(&self) -> ConsumerHandle
Clone + Send + Sync ConsumerHandle exposing
Consumer::wakeup and the reentrant-safe consumer operations,
callable from a task / thread other than the one that owns the
consumer. Read moreAuto Trait Implementations§
impl<K, V> !Freeze for KafkaConsumer<K, V>
impl<K, V> !RefUnwindSafe for KafkaConsumer<K, V>
impl<K, V> Send for KafkaConsumer<K, V>
impl<K, V> !Sync for KafkaConsumer<K, V>
impl<K, V> Unpin for KafkaConsumer<K, V>
impl<K, V> UnsafeUnpin for KafkaConsumer<K, V>
impl<K, V> !UnwindSafe for KafkaConsumer<K, V>
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
Source§impl<K, V, C> DynConsumer<K, V> for C
impl<K, V, C> DynConsumer<K, V> for C
Source§fn assignment(&mut self) -> HashSet<TopicPartition>
fn assignment(&mut self) -> HashSet<TopicPartition>
Source§fn subscription(&mut self) -> HashSet<String>
fn subscription(&mut self) -> HashSet<String>
Source§fn paused(&mut self) -> HashSet<TopicPartition>
fn paused(&mut self) -> HashSet<TopicPartition>
Source§fn group_metadata(&mut self) -> Arc<dyn ConsumerGroupMetadata>
fn group_metadata(&mut self) -> Arc<dyn ConsumerGroupMetadata>
Source§fn current_lag<'a>(
&'a mut self,
topic_partition: &'a TopicPartition,
) -> Pin<Box<dyn Future<Output = Result<Option<i64>, Error>> + Send + 'a>>
fn current_lag<'a>( &'a mut self, topic_partition: &'a TopicPartition, ) -> Pin<Box<dyn Future<Output = Result<Option<i64>, Error>> + Send + 'a>>
Source§fn metrics(&self) -> MetricsView
fn metrics(&self) -> MetricsView
Source§fn subscribe_with_topics<'a>(
&'a mut self,
topics: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn subscribe_with_topics<'a>( &'a mut self, topics: Vec<String>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn subscribe_with_topics_listener<'a>(
&'a mut self,
topics: Vec<String>,
listener: Arc<dyn ConsumerRebalanceListener>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn subscribe_with_topics_listener<'a>( &'a mut self, topics: Vec<String>, listener: Arc<dyn ConsumerRebalanceListener>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn subscribe_with_pattern<'a>(
&'a mut self,
pattern: SubscriptionPattern,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn subscribe_with_pattern<'a>( &'a mut self, pattern: SubscriptionPattern, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn subscribe_with_pattern_listener<'a>(
&'a mut self,
pattern: SubscriptionPattern,
listener: Arc<dyn ConsumerRebalanceListener>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn subscribe_with_pattern_listener<'a>( &'a mut self, pattern: SubscriptionPattern, listener: Arc<dyn ConsumerRebalanceListener>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn assign<'a>(
&'a mut self,
partitions: Vec<TopicPartition>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn assign<'a>( &'a mut self, partitions: Vec<TopicPartition>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn unsubscribe<'a>(
&'a mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn unsubscribe<'a>( &'a mut self, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn poll<'a>(
&'a mut self,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<ConsumerRecords<K, V>, Error>> + Send + 'a>>
fn poll<'a>( &'a mut self, timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<ConsumerRecords<K, V>, Error>> + Send + 'a>>
Consumer::poll. Read moreSource§fn commit_sync<'a>(
&'a mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn commit_sync<'a>( &'a mut self, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn commit_sync_with_timeout<'a>(
&'a mut self,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn commit_sync_with_timeout<'a>( &'a mut self, timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn commit_sync_with_offsets<'a>(
&'a mut self,
offsets: HashMap<TopicPartition, OffsetAndMetadata>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn commit_sync_with_offsets<'a>( &'a mut self, offsets: HashMap<TopicPartition, OffsetAndMetadata>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn commit_sync_with_offsets_timeout<'a>(
&'a mut self,
offsets: HashMap<TopicPartition, OffsetAndMetadata>,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn commit_sync_with_offsets_timeout<'a>( &'a mut self, offsets: HashMap<TopicPartition, OffsetAndMetadata>, timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn commit_async<'a>(
&'a mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn commit_async<'a>( &'a mut self, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn commit_async_with_callback<'a>(
&'a mut self,
callback: Arc<dyn OffsetCommitCallback>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn commit_async_with_callback<'a>( &'a mut self, callback: Arc<dyn OffsetCommitCallback>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn commit_async_with_offsets_callback<'a>(
&'a mut self,
offsets: HashMap<TopicPartition, OffsetAndMetadata>,
callback: Arc<dyn OffsetCommitCallback>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn commit_async_with_offsets_callback<'a>( &'a mut self, offsets: HashMap<TopicPartition, OffsetAndMetadata>, callback: Arc<dyn OffsetCommitCallback>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn seek_with_offset<'a>(
&'a mut self,
partition: TopicPartition,
offset: i64,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn seek_with_offset<'a>( &'a mut self, partition: TopicPartition, offset: i64, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn seek_with_offset_and_metadata<'a>(
&'a mut self,
partition: TopicPartition,
offset_and_metadata: OffsetAndMetadata,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn seek_with_offset_and_metadata<'a>( &'a mut self, partition: TopicPartition, offset_and_metadata: OffsetAndMetadata, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn seek_to_beginning<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn seek_to_beginning<'a>( &'a mut self, partitions: &'a [TopicPartition], ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn seek_to_end<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn seek_to_end<'a>( &'a mut self, partitions: &'a [TopicPartition], ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn position<'a>(
&'a mut self,
partition: &'a TopicPartition,
) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'a>>
fn position<'a>( &'a mut self, partition: &'a TopicPartition, ) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'a>>
Source§fn position_with_timeout<'a>(
&'a mut self,
partition: &'a TopicPartition,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'a>>
fn position_with_timeout<'a>( &'a mut self, partition: &'a TopicPartition, timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'a>>
Source§fn committed<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndMetadata>>, Error>> + Send + 'a>>
fn committed<'a>( &'a mut self, partitions: &'a [TopicPartition], ) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndMetadata>>, Error>> + Send + 'a>>
Source§fn committed_with_timeout<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndMetadata>>, Error>> + Send + 'a>>
fn committed_with_timeout<'a>( &'a mut self, partitions: &'a [TopicPartition], timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndMetadata>>, Error>> + Send + 'a>>
Source§fn partitions_for<'a>(
&'a mut self,
topic: &'a str,
) -> Pin<Box<dyn Future<Output = Result<Vec<PartitionInfo>, Error>> + Send + 'a>>
fn partitions_for<'a>( &'a mut self, topic: &'a str, ) -> Pin<Box<dyn Future<Output = Result<Vec<PartitionInfo>, Error>> + Send + 'a>>
Source§fn partitions_for_with_timeout<'a>(
&'a mut self,
topic: &'a str,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Vec<PartitionInfo>, Error>> + Send + 'a>>
fn partitions_for_with_timeout<'a>( &'a mut self, topic: &'a str, timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<Vec<PartitionInfo>, Error>> + Send + 'a>>
Source§fn list_topics<'a>(
&'a mut self,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, Vec<PartitionInfo>>, Error>> + Send + 'a>>
fn list_topics<'a>( &'a mut self, ) -> Pin<Box<dyn Future<Output = Result<HashMap<String, Vec<PartitionInfo>>, Error>> + Send + 'a>>
Source§fn list_topics_with_timeout<'a>(
&'a mut self,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, Vec<PartitionInfo>>, Error>> + Send + 'a>>
fn list_topics_with_timeout<'a>( &'a mut self, timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<HashMap<String, Vec<PartitionInfo>>, Error>> + Send + 'a>>
Source§fn offsets_for_times<'a>(
&'a mut self,
timestamps_to_search: HashMap<TopicPartition, i64>,
) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndTimestamp>>, Error>> + Send + 'a>>
fn offsets_for_times<'a>( &'a mut self, timestamps_to_search: HashMap<TopicPartition, i64>, ) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndTimestamp>>, Error>> + Send + 'a>>
Source§fn offsets_for_times_with_timeout<'a>(
&'a mut self,
timestamps_to_search: HashMap<TopicPartition, i64>,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndTimestamp>>, Error>> + Send + 'a>>
fn offsets_for_times_with_timeout<'a>( &'a mut self, timestamps_to_search: HashMap<TopicPartition, i64>, timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, Option<OffsetAndTimestamp>>, Error>> + Send + 'a>>
Source§fn beginning_offsets<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send + 'a>>
fn beginning_offsets<'a>( &'a mut self, partitions: &'a [TopicPartition], ) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send + 'a>>
Source§fn beginning_offsets_with_timeout<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send + 'a>>
fn beginning_offsets_with_timeout<'a>( &'a mut self, partitions: &'a [TopicPartition], timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send + 'a>>
Source§fn end_offsets<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send + 'a>>
fn end_offsets<'a>( &'a mut self, partitions: &'a [TopicPartition], ) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send + 'a>>
Source§fn end_offsets_with_timeout<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send + 'a>>
fn end_offsets_with_timeout<'a>( &'a mut self, partitions: &'a [TopicPartition], timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<HashMap<TopicPartition, i64>, Error>> + Send + 'a>>
Source§fn pause<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn pause<'a>( &'a mut self, partitions: &'a [TopicPartition], ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Consumer::pause. Read moreSource§fn resume<'a>(
&'a mut self,
partitions: &'a [TopicPartition],
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn resume<'a>( &'a mut self, partitions: &'a [TopicPartition], ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn enforce_rebalance<'a>(
&'a mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn enforce_rebalance<'a>( &'a mut self, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn enforce_rebalance_with_reason<'a>(
&'a mut self,
reason: &'a str,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn enforce_rebalance_with_reason<'a>( &'a mut self, reason: &'a str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn close<'a>(
&'a mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn close<'a>( &'a mut self, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Consumer::close. Read moreSource§fn close_with_options<'a>(
&'a mut self,
options: CloseOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
fn close_with_options<'a>( &'a mut self, options: CloseOptions, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>
Source§fn wakeup(&self)
fn wakeup(&self)
Consumer::wakeup.