Fix missing Send on generic stream and result items.
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -149,7 +149,7 @@ pub async fn get_shortstatekey(
|
|||||||
#[implement(Service)]
|
#[implement(Service)]
|
||||||
pub async fn get_eventid_from_short<Id>(&self, shorteventid: ShortEventId) -> Result<Id>
|
pub async fn get_eventid_from_short<Id>(&self, shorteventid: ShortEventId) -> Result<Id>
|
||||||
where
|
where
|
||||||
Id: for<'de> Deserialize<'de> + Sized + ToOwned,
|
Id: for<'de> Deserialize<'de> + Send + Sized + ToOwned,
|
||||||
<Id as ToOwned>::Owned: Borrow<EventId>,
|
<Id as ToOwned>::Owned: Borrow<EventId>,
|
||||||
{
|
{
|
||||||
const BUFSIZE: usize = size_of::<ShortEventId>();
|
const BUFSIZE: usize = size_of::<ShortEventId>();
|
||||||
@@ -169,7 +169,7 @@ pub fn multi_get_eventid_from_short<'a, Id, S>(
|
|||||||
) -> impl Stream<Item = Result<Id>> + Send + 'a
|
) -> impl Stream<Item = Result<Id>> + Send + 'a
|
||||||
where
|
where
|
||||||
S: Stream<Item = ShortEventId> + Send + 'a,
|
S: Stream<Item = ShortEventId> + Send + 'a,
|
||||||
Id: for<'de> Deserialize<'de> + Sized + ToOwned + 'a,
|
Id: for<'de> Deserialize<'de> + Send + Sized + ToOwned + 'a,
|
||||||
<Id as ToOwned>::Owned: Borrow<EventId>,
|
<Id as ToOwned>::Owned: Borrow<EventId>,
|
||||||
{
|
{
|
||||||
shorteventid
|
shorteventid
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ use ruma::{
|
|||||||
};
|
};
|
||||||
use tuwunel_core::{
|
use tuwunel_core::{
|
||||||
Result, err,
|
Result, err,
|
||||||
matrix::{Event, room_version, state_res::events::RoomCreateEvent},
|
matrix::{Pdu, room_version, state_res::events::RoomCreateEvent},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub struct Service {
|
pub struct Service {
|
||||||
@@ -65,7 +65,7 @@ impl Service {
|
|||||||
Ok(RoomPowerLevels::new(power_levels.into(), &rules.authorization, creators))
|
Ok(RoomPowerLevels::new(power_levels.into(), &rules.authorization, creators))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn get_create(&self, room_id: &RoomId) -> Result<RoomCreateEvent<impl Event>> {
|
pub async fn get_create(&self, room_id: &RoomId) -> Result<RoomCreateEvent<Pdu>> {
|
||||||
self.room_state_get(room_id, &StateEventType::RoomCreate, "")
|
self.room_state_get(room_id, &StateEventType::RoomCreate, "")
|
||||||
.await
|
.await
|
||||||
.map(RoomCreateEvent::new)
|
.map(RoomCreateEvent::new)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use ruma::{EventId, RoomId, events::StateEventType};
|
|||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use tuwunel_core::{
|
use tuwunel_core::{
|
||||||
Result, err, implement,
|
Result, err, implement,
|
||||||
matrix::{Event, StateKey},
|
matrix::{Event, Pdu, StateKey},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Returns a single PDU from `room_id` with key (`event_type`,`state_key`).
|
/// Returns a single PDU from `room_id` with key (`event_type`,`state_key`).
|
||||||
@@ -17,7 +17,7 @@ pub async fn room_state_get_content<T>(
|
|||||||
state_key: &str,
|
state_key: &str,
|
||||||
) -> Result<T>
|
) -> Result<T>
|
||||||
where
|
where
|
||||||
T: for<'de> Deserialize<'de>,
|
T: for<'de> Deserialize<'de> + Send,
|
||||||
{
|
{
|
||||||
self.room_state_get(room_id, event_type, state_key)
|
self.room_state_get(room_id, event_type, state_key)
|
||||||
.await
|
.await
|
||||||
@@ -69,7 +69,7 @@ pub async fn room_state_get_id<Id>(
|
|||||||
state_key: &str,
|
state_key: &str,
|
||||||
) -> Result<Id>
|
) -> Result<Id>
|
||||||
where
|
where
|
||||||
Id: for<'de> Deserialize<'de> + Sized + ToOwned,
|
Id: for<'de> Deserialize<'de> + Send + Sized + ToOwned,
|
||||||
<Id as ToOwned>::Owned: Borrow<EventId>,
|
<Id as ToOwned>::Owned: Borrow<EventId>,
|
||||||
{
|
{
|
||||||
self.services
|
self.services
|
||||||
@@ -88,7 +88,7 @@ pub async fn room_state_get(
|
|||||||
room_id: &RoomId,
|
room_id: &RoomId,
|
||||||
event_type: &StateEventType,
|
event_type: &StateEventType,
|
||||||
state_key: &str,
|
state_key: &str,
|
||||||
) -> Result<impl Event> {
|
) -> Result<Pdu> {
|
||||||
self.services
|
self.services
|
||||||
.state
|
.state
|
||||||
.get_room_shortstatehash(room_id)
|
.get_room_shortstatehash(room_id)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ use ruma::{
|
|||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use tuwunel_core::{
|
use tuwunel_core::{
|
||||||
Result, at, err, implement,
|
Result, at, err, implement,
|
||||||
matrix::{Event, StateKey},
|
matrix::{Event, Pdu, StateKey},
|
||||||
pair_of,
|
pair_of,
|
||||||
utils::{
|
utils::{
|
||||||
result::FlatOk,
|
result::FlatOk,
|
||||||
@@ -64,7 +64,7 @@ pub async fn state_get_content<T>(
|
|||||||
state_key: &str,
|
state_key: &str,
|
||||||
) -> Result<T>
|
) -> Result<T>
|
||||||
where
|
where
|
||||||
T: for<'de> Deserialize<'de>,
|
T: for<'de> Deserialize<'de> + Send,
|
||||||
{
|
{
|
||||||
self.state_get(shortstatehash, event_type, state_key)
|
self.state_get(shortstatehash, event_type, state_key)
|
||||||
.await
|
.await
|
||||||
@@ -127,10 +127,12 @@ pub async fn state_get(
|
|||||||
shortstatehash: ShortStateHash,
|
shortstatehash: ShortStateHash,
|
||||||
event_type: &StateEventType,
|
event_type: &StateEventType,
|
||||||
state_key: &str,
|
state_key: &str,
|
||||||
) -> Result<impl Event> {
|
) -> Result<Pdu> {
|
||||||
self.state_get_id(shortstatehash, event_type, state_key)
|
let event_id: OwnedEventId = self
|
||||||
.and_then(async |event_id: OwnedEventId| self.services.timeline.get_pdu(&event_id).await)
|
.state_get_id(shortstatehash, event_type, state_key)
|
||||||
.await
|
.await?;
|
||||||
|
|
||||||
|
self.services.timeline.get_pdu(&event_id).await
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns a single EventId from `room_id` with key (`event_type`,
|
/// Returns a single EventId from `room_id` with key (`event_type`,
|
||||||
@@ -143,7 +145,7 @@ pub async fn state_get_id<Id>(
|
|||||||
state_key: &str,
|
state_key: &str,
|
||||||
) -> Result<Id>
|
) -> Result<Id>
|
||||||
where
|
where
|
||||||
Id: for<'de> Deserialize<'de> + Sized + ToOwned,
|
Id: for<'de> Deserialize<'de> + Send + Sized + ToOwned,
|
||||||
<Id as ToOwned>::Owned: Borrow<EventId>,
|
<Id as ToOwned>::Owned: Borrow<EventId>,
|
||||||
{
|
{
|
||||||
let shorteventid = self
|
let shorteventid = self
|
||||||
|
|||||||
Reference in New Issue
Block a user