summaryrefslogblamecommitdiffstats
path: root/native/src/touch.rs
blob: 88bd83bb93206dd6aa258f40ed79d995bde85801 (plain) (tree)
1
2
3
4
5
                       


                        
                                        




























                                                                     
 
//! Build touch events.
use crate::Point;

/// A touch interaction.
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Touch {
    /// The finger of the touch.
    pub finger: Finger,

    /// The position of the touch.
    pub position: Point,

    /// The state of the touch.
    pub phase: Phase,
}

/// A unique identifier representing a finger on a touch interaction.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct Finger(pub u64);

/// The state of a touch interaction.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Phase {
    /// A touch interaction was started.
    Started,

    /// An on-going touch interaction was moved.
    Moved,

    /// A touch interaction was ended.
    Ended,

    /// A touch interaction was canceled.
    Canceled,
}