use std::sync::mpsc::Sender;
use ws::{CloseCode, Handler, Sender as WsCmd};
pub use component::WsClient;
pub use handler::WsClientHandler;
use crate::err::{OkResult, ZbusErr, ZbusResult};
use crate::message::{Message, Request, Response};
mod handler;
mod component;
pub enum Instruct {
Connected(WsCmd),
Connect,
Delivery(Message, Option<Sender<OkResult>>),
Receive(Message),
Response(String, Option<Sender<ZbusResult<Response>>>),
Close(Option<Sender<OkResult>>),
Closed,
Exit,
IsClose(Option<Sender<OkResult>>),
}