use crate::types::keys::Keys;
use crate::{sys, types::Point};
pub struct Mouse(sys::Mouse);
#[allow(unreachable_code, unused_variables)]
impl Mouse {
pub fn new() -> Mouse {
Mouse(sys::Mouse::new())
}
pub fn move_to(&self, x: i32, y: i32) -> Result<(), Box<dyn std::error::Error>> {
self.0.move_to(x, y)
}
pub fn press<'a>(&self, button: &'a Keys) -> Result<(), Box<dyn std::error::Error + 'a>> {
self.0.press(button)
}
pub fn release<'a>(&self, button: &'a Keys) -> Result<(), Box<dyn std::error::Error + 'a>> {
self.0.release(button)
}
pub fn get_position(&self) -> Result<Point, Box<dyn std::error::Error>> {
self.0.get_position()
}
pub fn wheel(&self, delta: i32) -> Result<(), Box<dyn std::error::Error>> {
self.0.wheel(delta)
}
pub fn scroll(&self, delta: i32) -> Result<(), Box<dyn std::error::Error>> {
self.0.wheel(delta)
}
pub fn click<'a>(&self, button: &'a Keys) -> Result<(), Box<dyn std::error::Error + 'a>> {
self.0.press(button).unwrap_or(());
self.0.release(button)
}
}