state-res: Remove StateResolution type
… making its associated functions free instead.
This commit is contained in:
parent
cc9336e444
commit
4bea59caef
@ -30,7 +30,7 @@ use ruma_events::{
|
|||||||
EventType,
|
EventType,
|
||||||
};
|
};
|
||||||
use ruma_identifiers::{EventId, RoomId, RoomVersionId, UserId};
|
use ruma_identifiers::{EventId, RoomId, RoomVersionId, UserId};
|
||||||
use ruma_state_res::{Error, Event, EventMap, Result, StateMap, StateResolution};
|
use ruma_state_res::{self as state_res, Error, Event, EventMap, Result, StateMap};
|
||||||
use serde_json::{json, Value as JsonValue};
|
use serde_json::{json, Value as JsonValue};
|
||||||
|
|
||||||
static SERVER_TIMESTAMP: AtomicU64 = AtomicU64::new(0);
|
static SERVER_TIMESTAMP: AtomicU64 = AtomicU64::new(0);
|
||||||
@ -45,7 +45,7 @@ fn lexico_topo_sort(c: &mut Criterion) {
|
|||||||
event_id("p") => hashset![event_id("o")],
|
event_id("p") => hashset![event_id("o")],
|
||||||
};
|
};
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let _ = StateResolution::lexicographical_topological_sort(&graph, |id| {
|
let _ = state_res::lexicographical_topological_sort(&graph, |id| {
|
||||||
Ok((0, MilliSecondsSinceUnixEpoch(uint!(0)), id.clone()))
|
Ok((0, MilliSecondsSinceUnixEpoch(uint!(0)), id.clone()))
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
@ -62,7 +62,7 @@ fn resolution_shallow_auth_chain(c: &mut Criterion) {
|
|||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let ev_map: EventMap<Arc<StateEvent>> = store.0.clone();
|
let ev_map: EventMap<Arc<StateEvent>> = store.0.clone();
|
||||||
let state_sets = vec![state_at_bob.clone(), state_at_charlie.clone()];
|
let state_sets = vec![state_at_bob.clone(), state_at_charlie.clone()];
|
||||||
let _ = match StateResolution::resolve::<StateEvent, _>(
|
let _ = match state_res::resolve::<StateEvent, _>(
|
||||||
&room_id(),
|
&room_id(),
|
||||||
&RoomVersionId::Version6,
|
&RoomVersionId::Version6,
|
||||||
&state_sets,
|
&state_sets,
|
||||||
@ -119,7 +119,7 @@ fn resolve_deeper_event_set(c: &mut Criterion) {
|
|||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let state_sets = vec![state_set_a.clone(), state_set_b.clone()];
|
let state_sets = vec![state_set_a.clone(), state_set_b.clone()];
|
||||||
let _ = match StateResolution::resolve::<StateEvent, _>(
|
let _ = match state_res::resolve::<StateEvent, _>(
|
||||||
&room_id(),
|
&room_id(),
|
||||||
&RoomVersionId::Version6,
|
&RoomVersionId::Version6,
|
||||||
&state_sets,
|
&state_sets,
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@ use std::{
|
|||||||
|
|
||||||
use rand::seq::SliceRandom;
|
use rand::seq::SliceRandom;
|
||||||
use ruma_events::EventType;
|
use ruma_events::EventType;
|
||||||
use ruma_state_res::{is_power_event, room_version::RoomVersion, StateMap, StateResolution};
|
use ruma_state_res::{self as state_res, is_power_event, room_version::RoomVersion, StateMap};
|
||||||
|
|
||||||
mod utils;
|
mod utils;
|
||||||
use utils::INITIAL_EVENTS;
|
use utils::INITIAL_EVENTS;
|
||||||
@ -27,12 +27,12 @@ fn test_event_sort() {
|
|||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
let sorted_power_events =
|
let sorted_power_events =
|
||||||
StateResolution::reverse_topological_power_sort(power_events, &auth_chain, |id| {
|
state_res::reverse_topological_power_sort(power_events, &auth_chain, |id| {
|
||||||
events.get(id).map(Arc::clone)
|
events.get(id).map(Arc::clone)
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let resolved_power = StateResolution::iterative_auth_check(
|
let resolved_power = state_res::iterative_auth_check(
|
||||||
&RoomVersion::version_6(),
|
&RoomVersion::version_6(),
|
||||||
&sorted_power_events,
|
&sorted_power_events,
|
||||||
&HashMap::new(), // unconflicted events
|
&HashMap::new(), // unconflicted events
|
||||||
@ -47,10 +47,9 @@ fn test_event_sort() {
|
|||||||
|
|
||||||
let power_level = resolved_power.get(&(EventType::RoomPowerLevels, "".to_owned()));
|
let power_level = resolved_power.get(&(EventType::RoomPowerLevels, "".to_owned()));
|
||||||
|
|
||||||
let sorted_event_ids = StateResolution::mainline_sort(&events_to_sort, power_level, |id| {
|
let sorted_event_ids =
|
||||||
events.get(id).map(Arc::clone)
|
state_res::mainline_sort(&events_to_sort, power_level, |id| events.get(id).map(Arc::clone))
|
||||||
})
|
.unwrap();
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
vec![
|
vec![
|
||||||
|
@ -4,7 +4,7 @@ use std::{collections::HashMap, sync::Arc};
|
|||||||
|
|
||||||
use ruma_events::EventType;
|
use ruma_events::EventType;
|
||||||
use ruma_identifiers::{EventId, RoomVersionId};
|
use ruma_identifiers::{EventId, RoomVersionId};
|
||||||
use ruma_state_res::{EventMap, StateMap, StateResolution};
|
use ruma_state_res::{self as state_res, EventMap, StateMap};
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use tracing::debug;
|
use tracing::debug;
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ fn ban_with_auth_chains2() {
|
|||||||
|
|
||||||
let ev_map: EventMap<Arc<StateEvent>> = store.0.clone();
|
let ev_map: EventMap<Arc<StateEvent>> = store.0.clone();
|
||||||
let state_sets = vec![state_set_a, state_set_b];
|
let state_sets = vec![state_set_a, state_set_b];
|
||||||
let resolved = match StateResolution::resolve::<StateEvent, _>(
|
let resolved = match state_res::resolve::<StateEvent, _>(
|
||||||
&room_id(),
|
&room_id(),
|
||||||
&RoomVersionId::Version6,
|
&RoomVersionId::Version6,
|
||||||
&state_sets,
|
&state_sets,
|
||||||
|
@ -5,7 +5,7 @@ use maplit::{hashmap, hashset};
|
|||||||
use ruma_common::MilliSecondsSinceUnixEpoch;
|
use ruma_common::MilliSecondsSinceUnixEpoch;
|
||||||
use ruma_events::{room::join_rules::JoinRule, EventType};
|
use ruma_events::{room::join_rules::JoinRule, EventType};
|
||||||
use ruma_identifiers::{EventId, RoomVersionId};
|
use ruma_identifiers::{EventId, RoomVersionId};
|
||||||
use ruma_state_res::{EventMap, StateMap, StateResolution};
|
use ruma_state_res::{self as state_res, EventMap, StateMap};
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use tracing_subscriber as tracer;
|
use tracing_subscriber as tracer;
|
||||||
|
|
||||||
@ -254,7 +254,7 @@ fn test_event_map_none() {
|
|||||||
|
|
||||||
let ev_map: EventMap<Arc<StateEvent>> = store.0.clone();
|
let ev_map: EventMap<Arc<StateEvent>> = store.0.clone();
|
||||||
let state_sets = vec![state_at_bob, state_at_charlie];
|
let state_sets = vec![state_at_bob, state_at_charlie];
|
||||||
let resolved = match StateResolution::resolve::<StateEvent, _>(
|
let resolved = match state_res::resolve::<StateEvent, _>(
|
||||||
&room_id(),
|
&room_id(),
|
||||||
&RoomVersionId::Version2,
|
&RoomVersionId::Version2,
|
||||||
&state_sets,
|
&state_sets,
|
||||||
@ -285,7 +285,7 @@ fn test_lexicographical_sort() {
|
|||||||
event_id("p") => hashset![event_id("o")],
|
event_id("p") => hashset![event_id("o")],
|
||||||
};
|
};
|
||||||
|
|
||||||
let res = StateResolution::lexicographical_topological_sort(&graph, |id| {
|
let res = state_res::lexicographical_topological_sort(&graph, |id| {
|
||||||
Ok((0, MilliSecondsSinceUnixEpoch(uint!(0)), id.clone()))
|
Ok((0, MilliSecondsSinceUnixEpoch(uint!(0)), id.clone()))
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
@ -21,7 +21,7 @@ use ruma_events::{
|
|||||||
EventType,
|
EventType,
|
||||||
};
|
};
|
||||||
use ruma_identifiers::{EventId, RoomId, RoomVersionId, UserId};
|
use ruma_identifiers::{EventId, RoomId, RoomVersionId, UserId};
|
||||||
use ruma_state_res::{auth_types_for_event, Error, Event, Result, StateMap, StateResolution};
|
use ruma_state_res::{self as state_res, auth_types_for_event, Error, Event, Result, StateMap};
|
||||||
use serde_json::{json, Value as JsonValue};
|
use serde_json::{json, Value as JsonValue};
|
||||||
use tracing::info;
|
use tracing::info;
|
||||||
use tracing_subscriber as tracer;
|
use tracing_subscriber as tracer;
|
||||||
@ -79,7 +79,7 @@ pub fn do_check(
|
|||||||
|
|
||||||
// Resolve the current state and add it to the state_at_event map then continue
|
// Resolve the current state and add it to the state_at_event map then continue
|
||||||
// on in "time"
|
// on in "time"
|
||||||
for node in StateResolution::lexicographical_topological_sort(&graph, |id| {
|
for node in state_res::lexicographical_topological_sort(&graph, |id| {
|
||||||
Ok((0, MilliSecondsSinceUnixEpoch(uint!(0)), id.clone()))
|
Ok((0, MilliSecondsSinceUnixEpoch(uint!(0)), id.clone()))
|
||||||
})
|
})
|
||||||
.unwrap()
|
.unwrap()
|
||||||
@ -111,7 +111,7 @@ pub fn do_check(
|
|||||||
.collect::<Vec<_>>()
|
.collect::<Vec<_>>()
|
||||||
);
|
);
|
||||||
|
|
||||||
let resolved = StateResolution::resolve(
|
let resolved = state_res::resolve(
|
||||||
&room_id(),
|
&room_id(),
|
||||||
&RoomVersionId::Version6,
|
&RoomVersionId::Version6,
|
||||||
&state_sets,
|
&state_sets,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user