Skip to main content

CallbackDataCache

Struct CallbackDataCache 

Source
pub struct CallbackDataCache { /* private fields */ }
Expand description

A custom cache for storing the callback data of an ExtBot.

Internally, it keeps two mappings with fixed maximum size:

  • One for mapping the data received in callback queries to the cached objects.
  • One for mapping the IDs of received callback queries to the cached objects.

The second mapping allows manually dropping data cached for keyboards of messages sent via inline mode. If necessary, the least recently used items are evicted.

Implementations§

Source§

impl CallbackDataCache

Source

pub fn new(maxsize: usize) -> Self

Creates a new CallbackDataCache.

§Arguments
  • maxsize - Maximum number of items in each of the internal mappings.
Source

pub fn load_persistence_data(&mut self, data: CdcData)

Loads persisted data into the cache.

Source

pub fn maxsize(&self) -> usize

The maximum size of the cache.

Source

pub fn persistence_data(&self) -> CdcData

Returns the data that needs to be persisted.

Source

pub fn process_keyboard( &mut self, reply_markup: &InlineKeyboardMarkup, ) -> InlineKeyboardMarkup

Registers the reply markup in the cache.

If any of the buttons have callback_data, stores that data and builds a new keyboard with the correspondingly replaced buttons. Otherwise, returns the original reply markup unchanged.

Source

pub fn extract_uuids(callback_data: &str) -> (&str, &str)

Extracts keyboard uuid and button uuid from a raw callback data string.

The first 32 characters are the keyboard uuid, the rest is the button uuid.

Source

pub fn process_message_value(&mut self, message: &mut Value) -> Option<String>

Replaces the data in the inline keyboard attached to a raw JSON message value.

Works with Message.reply_markup being Option<Value> (the raw type from the rust-tg-bot-raw crate).

Returns the keyboard UUID if resolution succeeded.

Source

pub fn process_callback_query(&mut self, callback_query: &mut CallbackQuery)

Replaces the data in the callback query (and attached message keyboard) with cached objects.

In place – modifies the passed CallbackQuery.

Source

pub fn drop_data( &mut self, callback_query_id: &str, ) -> Result<(), InvalidCallbackData>

Deletes the data for the specified callback query.

§Errors

Returns Err if the callback query is not found in the cache.

Source

pub fn clear_callback_data(&mut self, time_cutoff: Option<f64>)

Clears the stored callback data.

If time_cutoff is provided, only entries older than that UNIX timestamp are cleared.

Source

pub fn clear_callback_queries(&mut self)

Clears all stored callback query IDs.

Trait Implementations§

Source§

impl Clone for CallbackDataCache

Source§

fn clone(&self) -> CallbackDataCache

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CallbackDataCache

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more