pub struct Room {
pub channel: String,
pub kind: RoomKind,
pub participants: BTreeMap<CaseFolded, Participant>,
pub turn: Option<TurnCredentials>,
}Expand description
The state of one voice room: who is in it, their kind of channel, and every participant’s mic, video, speaking, deaf, screen and hand state and role.
Fields§
§channel: StringThe channel this room’s signalling is scoped to.
kind: RoomKindWhether every member publishes, or only the streamer and whoever they promote.
participants: BTreeMap<CaseFolded, Participant>Every known participant, keyed by their folded nick.
turn: Option<TurnCredentials>The TURN credentials the SFU handed us on joined, if it has yet.
Implementations§
Source§impl Room
impl Room
Sourcepub fn new(channel: impl Into<String>) -> Self
pub fn new(channel: impl Into<String>) -> Self
A room for channel with no participants yet, whose kind follows the ^/$ prefix.
Sourcepub fn apply(&mut self, me: &str, signal: &Signal, casemap: Casemapping)
pub fn apply(&mut self, me: &str, signal: &Signal, casemap: Casemapping)
Apply one server signal, updating membership and per-participant state.
me is our own nick, needed to resolve the local role a joined frame reports for us
alone. casemap is the server’s, because two spellings of one nick are one person here
exactly as they are everywhere else. Every other frame type is ignored: they are either
outbound intents this room waits to see echoed back as presence, or carry nothing about
membership or state.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Room
impl<'de> Deserialize<'de> for Room
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>,
impl Eq for Room
impl StructuralPartialEq for Room
Source§impl TS for Room
impl TS for Room
Source§const DOCS: Option<&'static str>
const DOCS: Option<&'static str>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§type WithoutGenerics = Room
type WithoutGenerics = Room
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or ().
The only requirement for these dummy types is that EXPORT_TO must be None. Read moreSource§fn decl_concrete() -> String
fn decl_concrete() -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl() -> String
fn decl() -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline() -> String
fn inline() -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened() -> String
fn inline_flattened() -> String
This function will panic if the type cannot be flattened.
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<&'static Path>
fn output_path() -> Option<&'static Path>
T should be exported.The returned path does not include the base directory from
TS_RS_EXPORT_DIR. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
§fn dependencies() -> Vec<Dependency>where
Self: 'static,
fn dependencies() -> Vec<Dependency>where
Self: 'static,
§fn export() -> Result<(), ExportError>where
Self: 'static,
fn export() -> Result<(), ExportError>where
Self: 'static,
TS::export_all]. Read more§fn export_all() -> Result<(), ExportError>where
Self: 'static,
fn export_all() -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use [
TS::export]. Read more§fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use [
TS::export]. Read more§fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
§fn default_output_path() -> Option<PathBuf>
fn default_output_path() -> Option<PathBuf>
T should be exported. Read more