pub struct F1 {}Expand description
A high-level interface to the telemetry data of modern F1 video games.
The F1 struct implements a high-level interface to the telemetry data of the modern F1 video games. It is the recommended way to use the library, as it provides a simple interface to consumers that hides the low-level internals of the library.
Implementations§
Source§impl F1
impl F1
Sourcepub fn stream(
socket_address: SocketAddr,
) -> Result<impl Stream<Item = Packet>, Error>
pub fn stream( socket_address: SocketAddr, ) -> Result<impl Stream<Item = Packet>, Error>
Create a stream that yields decoded UDP packets.
Modern F1 games publish their telemetry and session data through a UDP-based protocol. With
this function, a stream can be created that listens at the given socket for incoming
packets, decodes them using the F1Codec, and returns their Rust representations.
§Examples
use std::net::{IpAddr, SocketAddr};
use f1_api::F1;
use f1_api::packet::Packet::{Event, Lap, Motion, Participants, Session, Setup, Status, Telemetry};
use tokio_stream::StreamExt;
async fn example() {
let ip_address = IpAddr::from([0, 0, 0, 0]);
let port = 20777;
let socket = SocketAddr::new(ip_address, port);
let mut stream = F1::stream(socket).unwrap();
while let Some(packet) = stream.next().await {
match packet {
Event(_) => println!("Received Event packet"),
Lap(_) => println!("Received Lap packet"),
Motion(_) => println!("Received Motion packet"),
Participants(_) => println!("Received Participants packet"),
Session(_) => println!("Received Session packet"),
Setup(_) => println!("Received Setup packet"),
Status(_) => println!("Received Status packet"),
Telemetry(_) => println!("Received Telemetry packet"),
}
}
}Auto Trait Implementations§
impl Freeze for F1
impl RefUnwindSafe for F1
impl Send for F1
impl Sync for F1
impl Unpin for F1
impl UnsafeUnpin for F1
impl UnwindSafe for F1
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