1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//! Harlequinn is a real-time networking library primarily aimed at games.
//! It is based on the [Quinn](https://github.com/djc/quinn) implementation of the QUIC protocol.

//! Harlequinn wraps around Quinn to provide an API that can be easily used from a synchronous game
//! loop.
//! It also implements some additional nice-to-have features out of the box.

#![deny(bare_trait_objects)]
#![warn(clippy::all)]

mod endpoint;
mod worker;

pub use self::endpoint::{HqEndpoint, EndpointEvent};

pub use quinn::{Certificate, PrivateKey};

use slotmap::new_key_type;

new_key_type! {
    /// Represents a peer connected to an `HqEndpoint`.
    pub struct PeerId;
}

#[derive(Debug, Copy, Clone, PartialEq)]
pub enum MessageOrder {
    Unordered,
    Ordered,
}