pub struct RawConnection {
pub reader: RawConnectionReader,
pub writer: RawConnectionWriter,
pub read_packets_task: JoinHandle<()>,
pub write_packets_task: JoinHandle<()>,
pub connection_protocol: ConnectionProtocol,
}
Expand description
A component for clients that can read and write packets to the server. This works with raw bytes, so you’ll have to serialize/deserialize packets yourself. It will do the compression and encryption for you though.
Fields§
§reader: RawConnectionReader
§writer: RawConnectionWriter
§read_packets_task: JoinHandle<()>
Packets sent to this will be sent to the server. A task that reads packets from the server. The client is disconnected when this task ends.
write_packets_task: JoinHandle<()>
A task that writes packets from the server.
connection_protocol: ConnectionProtocol
Implementations§
Source§impl RawConnection
impl RawConnection
pub fn new( run_schedule_sender: UnboundedSender<()>, connection_protocol: ConnectionProtocol, raw_read_connection: RawReadConnection, raw_write_connection: RawWriteConnection, ) -> RawConnection
pub fn write_raw_packet( &self, raw_packet: Box<[u8]>, ) -> Result<(), WritePacketError>
Sourcepub fn write_packet<P>(
&self,
packet: impl Packet<P>,
) -> Result<(), WritePacketError>where
P: ProtocolPacket + Debug,
pub fn write_packet<P>(
&self,
packet: impl Packet<P>,
) -> Result<(), WritePacketError>where
P: ProtocolPacket + Debug,
Write the packet with the given state to the server.
§Errors
Returns an error if the packet is not valid for the current state, or if encoding it failed somehow (like it’s too big or something).
pub fn incoming_packet_queue(&self) -> Arc<Mutex<RawMutex, Vec<Box<[u8]>>>>
pub fn set_state(&mut self, connection_protocol: ConnectionProtocol)
Trait Implementations§
Source§impl Component for RawConnection
impl Component for RawConnection
Source§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
A constant indicating the storage type used for this component.
Source§fn register_required_components(
requiree: ComponentId,
components: &mut Components,
storages: &mut Storages,
required_components: &mut RequiredComponents,
inheritance_depth: u16,
)
fn register_required_components( requiree: ComponentId, components: &mut Components, storages: &mut Storages, required_components: &mut RequiredComponents, inheritance_depth: u16, )
Registers required components.
Source§fn register_component_hooks(hooks: &mut ComponentHooks)
fn register_component_hooks(hooks: &mut ComponentHooks)
Called when registering this component, allowing mutable access to its [
ComponentHooks
].Auto Trait Implementations§
impl Freeze for RawConnection
impl !RefUnwindSafe for RawConnection
impl Send for RawConnection
impl Sync for RawConnection
impl Unpin for RawConnection
impl !UnwindSafe for RawConnection
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<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut Components, storages: &mut Storages, ids: &mut impl FnMut(ComponentId), )
unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
§fn register_required_components(
components: &mut Components,
storages: &mut Storages,
required_components: &mut RequiredComponents,
)
fn register_required_components( components: &mut Components, storages: &mut Storages, required_components: &mut RequiredComponents, )
Registers components that are required by the components in this [
Bundle
].§fn get_component_ids(
components: &Components,
ids: &mut impl FnMut(Option<ComponentId>),
)
fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )
Gets this [
Bundle
]’s component ids. This will be None
if the component has not been registered.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.