use from_variants::FromVariants;
use livekit_common::ParticipantIdentity;
use crate::{
incoming::AnyStreamReader,
types::{Chunk, Packet, Trailer},
};
pub struct PacketReceived {
pub packet: Packet,
pub participant_identity: ParticipantIdentity,
}
impl PacketReceived {
pub fn new(packet: Packet, participant_identity: ParticipantIdentity) -> Self {
Self { packet, participant_identity }
}
}
#[derive(FromVariants)]
pub enum InputEvent {
PacketReceived(PacketReceived),
AbortStreamsFrom(ParticipantIdentity),
Shutdown,
}
pub struct StreamOpened {
pub stream_reader: AnyStreamReader,
pub participant_identity: ParticipantIdentity,
}
pub struct ChunkReceived {
pub chunk: Chunk,
pub participant_identity: ParticipantIdentity,
}
pub struct TrailerReceived {
pub trailer: Trailer,
pub participant_identity: ParticipantIdentity,
}
#[derive(FromVariants)]
pub enum OutputEvent {
StreamOpened(StreamOpened),
ChunkReceived(ChunkReceived),
TrailerReceived(TrailerReceived),
}