use std::collections::HashMap;
use std::path::{Path, PathBuf};
use crate::canvas::Canvas;
use crate::hardware::HotplugInfo;
use crate::Result;
mod local;
pub use local::*;
pub trait Transport {
fn connect(&mut self) -> Result<()>;
fn disconnect(&mut self) -> Result<()>;
fn get_server_status(&self) -> Result<ServerStatus>;
fn get_active_profile(&self) -> Result<PathBuf>;
fn switch_profile(&self, profile_file: &Path) -> Result<bool>;
fn set_parameters(
&self,
profile_file: &Path,
script_file: &Path,
parameter_values: HashMap<String, String>,
) -> Result<()>;
fn submit_canvas(&self, canvas: &Canvas) -> Result<()>;
fn notify_device_hotplug(&self, hotplug_info: &HotplugInfo) -> Result<()>;
}
#[derive(Debug, Default, Clone)]
pub struct ServerStatus {
pub server: String,
}