skyway 0.0.1

A command-line OpenStreetMap file converter
use std::sync::mpsc::Sender;
use std::io::Read;

use crate::elements;

mod json;
use json::read_json;

mod pbf;
use pbf::read_pbf;

mod xml;
use xml::read_xml;

pub fn read_file<S: Read + Send>(sender: Sender<elements::Element>, metadata_sender: Sender<elements::Metadata>, from: &str, mut source: S) {
    match from {
        "json" => {
            let mut buffer = String::new();
            let source_str = match source.read_to_string(&mut buffer) {
                Ok(_) => buffer.as_str(),
                Err(e) => {
                    panic!("Error reading input: {e:?}");
                },
            };
            read_json(sender, metadata_sender, source_str);
        },
        "pbf" => read_pbf(sender, metadata_sender, source),
        "xml" => {
            let mut buffer = String::new();
            let source_str = match source.read_to_string(&mut buffer) {
                Ok(_) => buffer.as_str(),
                Err(e) => {
                    panic!("Error reading input: {e:?}");
                },
            };
            read_xml(sender, metadata_sender, source_str);
        },
        _ => panic!("Filetype not supported!")
    }
}