use serde::Deserialize; use std::fs::File; #[derive(Debug, Deserialize)] struct Feature { location: Location, name: String, } #[derive(Debug, Deserialize)] struct Location { latitude: i32, longitude: i32, } #[allow(dead_code)] pub fn load() -> Vec { let data_dir = std::path::PathBuf::from_iter([std::env!("CARGO_MANIFEST_DIR"), "data"]); let file = File::open(data_dir.join("route_guide_db.json")).expect("failed to open data file"); let decoded: Vec = serde_json::from_reader(&file).expect("failed to deserialize features"); decoded .into_iter() .map(|feature| crate::routeguide::Feature { name: feature.name, location: Some(crate::routeguide::Point { longitude: feature.location.longitude, latitude: feature.location.latitude, }), }) .collect() }