pub fn get_players(&self, sport: &str) -> Result<Vec<Player>> row Live Data Service (Frontend to Tauri) // services/playerService.ts import invoke from '@tauri-apps/api/tauri'; export async function fetchPlayers(sport: string) return await invoke('get_player_stats', sport );
Backend (Rust with tokio-tungstenite ) // Spawn WebSocket server inside Tauri command use tokio_tungstenite::connect_async; #[tauri::command] async fn subscribe_live_updates(url: String) -> Result<(), String> e.to_string())?; // Process incoming messages & emit to frontend via Tauri event system Ok(())
#[cfg(test)] mod tests use super::*; #[test] fn test_get_player_stats() let result = get_player_stats("football".to_string()); assert!(result.is_ok()); fantaasta desktop
const handleSimulate = async () => const data = await runDraftSim(leagueId); setResults(data); ;
export const useLeagueStore = create<LeagueState>((set) => ( currentLeague: null, players: [], isLoading: false, setLeague: (league) => set( currentLeague: league ), refreshPlayers: async (sport) => set( isLoading: true ); const players = await fetchPlayers(sport); set( players, isLoading: false ); , )); // components/DraftSimulator/DraftSimulator.tsx import useState from 'react'; import runDraftSim from '../../services/playerService'; export function DraftSimulator( leagueId : leagueId: number ) const [results, setResults] = useState(null); pub fn get_players(&self
use rusqlite::Connection, Result; pub struct Database conn: Connection,
Use GitHub Actions to build for all platforms on tag push: sport: &str) ->
// store/leagueStore.ts import create from 'zustand'; interface LeagueState null; players: Player[]; isLoading: boolean; setLeague: (league: League) => void; refreshPlayers: (sport: string) => Promise<void>;