pub struct Homeserver {
pub id: PubkyId,
pub cursor: String,
}Expand description
Represents a homeserver with its public key, URL, and cursor.
Fields§
§id: PubkyId§cursor: StringImplementations§
Source§impl Homeserver
impl Homeserver
pub async fn new(id: PubkyId) -> Result<Self, Box<dyn Error + Sync + Send>>
Sourcepub async fn get_from_index(id: &str) -> Result<Option<Self>, DynError>
pub async fn get_from_index(id: &str) -> Result<Option<Self>, DynError>
Retrieves the homeserver from Redis.
Sourcepub async fn put_to_index(&self) -> Result<(), DynError>
pub async fn put_to_index(&self) -> Result<(), DynError>
Stores the homeserver in Redis.
pub async fn from_config(homeserver: PubkyId) -> Result<Homeserver, DynError>
Trait Implementations§
Source§impl Debug for Homeserver
impl Debug for Homeserver
Source§impl<'de> Deserialize<'de> for Homeserver
impl<'de> Deserialize<'de> for Homeserver
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl RedisOps for Homeserver
impl RedisOps for Homeserver
Source§fn prefix<'async_trait>() -> Pin<Box<dyn Future<Output = String> + Send + 'async_trait>>where
Self: 'async_trait,
fn prefix<'async_trait>() -> Pin<Box<dyn Future<Output = String> + Send + 'async_trait>>where
Self: 'async_trait,
Provides a prefix string for the Redis key. Read more
Source§fn put_index_json<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
key_parts: &'life1 [&'life2 str],
prefix: Option<String>,
expiration: Option<i64>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_index_json<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
key_parts: &'life1 [&'life2 str],
prefix: Option<String>,
expiration: Option<i64>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Sets the data in Redis using the provided key parts. Read more
Source§fn try_from_index_json<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
prefix: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<Option<Self>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn try_from_index_json<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
prefix: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<Option<Self>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves data from Redis using the provided key parts. Read more
Source§fn try_from_index_multiple_json<'life0, 'life1, 'life2, 'async_trait>(
key_parts_list: &'life0 [&'life1 [&'life2 str]],
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<Self>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn try_from_index_multiple_json<'life0, 'life1, 'life2, 'async_trait>(
key_parts_list: &'life0 [&'life1 [&'life2 str]],
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<Self>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Retrieves multiple JSON objects from Redis using the provided key parts. Read more
Source§fn put_multiple_json_indexes<'life0, 'life1, 'life2, 'async_trait>(
key_parts_list: &'life0 [&'life1 [&'life2 str]],
collection: Vec<Option<Self>>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_multiple_json_indexes<'life0, 'life1, 'life2, 'async_trait>(
key_parts_list: &'life0 [&'life1 [&'life2 str]],
collection: Vec<Option<Self>>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Stores multiple key-value pairs in Redis, where each key is constructed from the provided key parts
and each value is an item from the given collection. Read more
Source§fn remove_from_index_multiple_json<'life0, 'life1, 'life2, 'async_trait>(
key_parts_list: &'life0 [&'life1 [&'life2 str]],
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn remove_from_index_multiple_json<'life0, 'life1, 'life2, 'async_trait>(
key_parts_list: &'life0 [&'life1 [&'life2 str]],
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Removes multiple JSON objects from Redis using the provided key parts. Read more
Source§fn modify_json_field<'life0, 'life1, 'life2, 'async_trait>(
key_parts: &'life0 [&'life1 str],
field: &'life2 str,
action: JsonAction,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn modify_json_field<'life0, 'life1, 'life2, 'async_trait>(
key_parts: &'life0 [&'life1 str],
field: &'life2 str,
action: JsonAction,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Modifies a numeric field in a Redis JSON object by either incrementing or decrementing it. Read more
Source§fn put_index_list<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 self,
key_parts: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>
fn put_index_list<'life0, 'life1, 'life2, 'async_trait, T>( &'life0 self, key_parts: &'life1 [&'life2 str], ) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>
Adds elements to a Redis list using the provided key parts. Read more
Source§fn try_from_index_list<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
skip: Option<usize>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<String>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn try_from_index_list<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
skip: Option<usize>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<String>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves a range of elements from a Redis list using the provided key parts. Read more
Source§fn put_index_set<'life0, 'life1, 'life2, 'life3, 'async_trait>(
key_parts: &'life0 [&'life1 str],
values: &'life2 [&'life3 str],
expiration: Option<i64>,
prefix: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn put_index_set<'life0, 'life1, 'life2, 'life3, 'async_trait>(
key_parts: &'life0 [&'life1 str],
values: &'life2 [&'life3 str],
expiration: Option<i64>,
prefix: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Adds elements to a Redis set using the provided key parts. Read more
Source§fn remove_from_index_set<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 self,
key_parts: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>
fn remove_from_index_set<'life0, 'life1, 'life2, 'async_trait, T>( &'life0 self, key_parts: &'life1 [&'life2 str], ) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>
Removes elements from a Redis set using the provided key parts. Read more
Source§fn try_from_index_set<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
skip: Option<usize>,
limit: Option<usize>,
prefix: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<String>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn try_from_index_set<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
skip: Option<usize>,
limit: Option<usize>,
prefix: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<String>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves a range of elements from a Redis set using the provided key parts. Read more
Source§fn check_set_member<'life0, 'life1, 'life2, 'async_trait>(
key_parts: &'life0 [&'life1 str],
member: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(bool, bool), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn check_set_member<'life0, 'life1, 'life2, 'async_trait>(
key_parts: &'life0 [&'life1 str],
member: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(bool, bool), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Checks if a member exists in a Redis set and if the set exists using the provided key parts. Read more
Source§fn get_set_size<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_set_size<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves the size of a Redis set using the provided key parts. Read more
Source§fn try_from_multiple_sets<'life0, 'life1, 'life2, 'async_trait>(
key_parts_list: &'life0 [&'life1 str],
prefix: Option<String>,
member: Option<&'life2 str>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<(Vec<String>, usize, bool)>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn try_from_multiple_sets<'life0, 'life1, 'life2, 'async_trait>(
key_parts_list: &'life0 [&'life1 str],
prefix: Option<String>,
member: Option<&'life2 str>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<(Vec<String>, usize, bool)>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Fetches multiple sets from Redis using the specified key components. Read more
Source§fn put_multiple_set_indexes<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
common_key: &'life0 [&'life1 str],
index: &'life2 [&'life3 str],
collections_refs: &'life4 [Vec<&'life5 str>],
prefix: Option<String>,
expiration: Option<i64>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn put_multiple_set_indexes<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
common_key: &'life0 [&'life1 str],
index: &'life2 [&'life3 str],
collections_refs: &'life4 [Vec<&'life5 str>],
prefix: Option<String>,
expiration: Option<i64>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Adds elements to multiple Redis sets using the provided keys and collections. Read more
Source§fn try_get_random_from_index_set<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
count: isize,
prefix: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<String>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn try_get_random_from_index_set<'life0, 'life1, 'async_trait>(
key_parts: &'life0 [&'life1 str],
count: isize,
prefix: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<String>>, DynError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves random elements from a Redis set using the provided key parts. Read more
Source§fn check_sorted_set_member<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
prefix: Option<&'life0 str>,
key_parts: &'life1 [&'life2 str],
member: &'life3 [&'life4 str],
) -> Pin<Box<dyn Future<Output = Result<Option<isize>, DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn check_sorted_set_member<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
prefix: Option<&'life0 str>,
key_parts: &'life1 [&'life2 str],
member: &'life3 [&'life4 str],
) -> Pin<Box<dyn Future<Output = Result<Option<isize>, DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Checks if a member exists in a Redis sorted set and retrieves its score if it exists. Read more
Source§fn put_index_sorted_set<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
key_parts: &'life0 [&'life1 str],
elements: &'life2 [(f64, &'life3 str)],
prefix: Option<&'life4 str>,
expiration: Option<i64>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn put_index_sorted_set<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
key_parts: &'life0 [&'life1 str],
elements: &'life2 [(f64, &'life3 str)],
prefix: Option<&'life4 str>,
expiration: Option<i64>,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Adds elements to a Redis sorted set using the provided key parts. Read more
Source§fn put_score_index_sorted_set<'life0, 'life1, 'life2, 'life3, 'async_trait>(
key_parts: &'life0 [&'life1 str],
member: &'life2 [&'life3 str],
score_mutation: ScoreAction,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn put_score_index_sorted_set<'life0, 'life1, 'life2, 'life3, 'async_trait>(
key_parts: &'life0 [&'life1 str],
member: &'life2 [&'life3 str],
score_mutation: ScoreAction,
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Updates the score of a member in a Redis sorted set. Read more
Source§fn remove_from_index_sorted_set<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
prefix: Option<&'life0 str>,
key_parts: &'life1 [&'life2 str],
items: &'life3 [&'life4 str],
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn remove_from_index_sorted_set<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
prefix: Option<&'life0 str>,
key_parts: &'life1 [&'life2 str],
items: &'life3 [&'life4 str],
) -> Pin<Box<dyn Future<Output = Result<(), DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Removes elements from a Redis sorted set using the provided key parts. Read more
Source§fn try_from_index_sorted_set<'life0, 'life1, 'life2, 'async_trait>(
key_parts: &'life0 [&'life1 str],
start: Option<f64>,
end: Option<f64>,
skip: Option<usize>,
limit: Option<usize>,
sorting: SortOrder,
prefix: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<(String, f64)>>, DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn try_from_index_sorted_set<'life0, 'life1, 'life2, 'async_trait>(
key_parts: &'life0 [&'life1 str],
start: Option<f64>,
end: Option<f64>,
skip: Option<usize>,
limit: Option<usize>,
sorting: SortOrder,
prefix: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<(String, f64)>>, DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Retrieves a range of elements from a Redis sorted set using the provided key parts. Read more
Source§fn try_from_index_sorted_set_lex<'life0, 'life1, 'life2, 'life3, 'async_trait>(
key_parts: &'life0 [&'life1 str],
min: &'life2 str,
max: &'life3 str,
skip: Option<usize>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<String>>, DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn try_from_index_sorted_set_lex<'life0, 'life1, 'life2, 'life3, 'async_trait>(
key_parts: &'life0 [&'life1 str],
min: &'life2 str,
max: &'life3 str,
skip: Option<usize>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<String>>, DynError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Retrieves a lexicographical range of elements from a Redis sorted set using the provided key parts. Read more
Auto Trait Implementations§
impl Freeze for Homeserver
impl RefUnwindSafe for Homeserver
impl Send for Homeserver
impl Sync for Homeserver
impl Unpin for Homeserver
impl UnsafeUnpin for Homeserver
impl UnwindSafe for Homeserver
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
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request