use std::time::Instant;
use crate::{enums::InputAction, simulator::InputSimulator};
pub struct ActionExecutor {
simulator: InputSimulator,
}
impl ActionExecutor {
pub fn new() -> Self {
ActionExecutor {
simulator: InputSimulator::new(),
}
}
pub async fn execute(&self, action: &InputAction) -> (String, u128) {
let start_time = Instant::now();
let result = self.simulator.execute_action(action).await;
let duration = start_time.elapsed().as_millis();
(result, duration)
}
pub fn get_screen_size(&self) -> (u32, u32) {
self.simulator.get_screen_size()
}
pub fn simulator(&self) -> &InputSimulator {
&self.simulator
}
}