use std::sync::Arc; use anyhow::Result; use rfactor_sm_reader::{rF2VehicleTelemetry, VehicleScoringInfoV01}; use ui::prelude::*; use crate::overlay::{rfactor_data::DataReceiver, UiOverlay}; pub struct Watermark { gui: Arc, } impl Watermark { pub fn new(gui_handler: &Arc) -> Result { const DESC: &str = include_str!("ui_files/watermark.xml"); let gui = GuiBuilder::from_str(gui_handler, DESC)?; gui.enable()?; Ok(Self { gui }) } } impl Drop for Watermark { fn drop(&mut self) { self.gui.disable().unwrap() } } impl UiOverlay for Watermark {} impl DataReceiver for Watermark { fn scoring_update(&mut self, _vehicle_scoring: &[VehicleScoringInfoV01]) -> Result<()> { Ok(()) } fn telemetry_update( &mut self, _player_id: Option, _telemetries: &[rF2VehicleTelemetry], ) -> Result<()> { Ok(()) } }