use crate::common::Confidence;
use crate::error::SceneResult;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum SportsType {
Soccer,
Basketball,
Tennis,
Baseball,
Golf,
Swimming,
Skiing,
Unknown,
}
impl SportsType {
#[must_use]
pub const fn name(&self) -> &'static str {
match self {
Self::Soccer => "Soccer",
Self::Basketball => "Basketball",
Self::Tennis => "Tennis",
Self::Baseball => "Baseball",
Self::Golf => "Golf",
Self::Swimming => "Swimming",
Self::Skiing => "Skiing",
Self::Unknown => "Unknown",
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SportsActivity {
pub sports_type: SportsType,
pub action: Option<String>,
pub confidence: Confidence,
}
pub struct SportsActivityRecognizer;
impl SportsActivityRecognizer {
#[must_use]
pub fn new() -> Self {
Self
}
pub fn recognize(
&self,
_frames: &[&[u8]],
_width: usize,
_height: usize,
) -> SceneResult<SportsActivity> {
Ok(SportsActivity {
sports_type: SportsType::Unknown,
action: None,
confidence: Confidence::new(0.5),
})
}
}
impl Default for SportsActivityRecognizer {
fn default() -> Self {
Self::new()
}
}