net-component 0.1.0

This crate defines core traits and types for the components in net-timescale. The component in the context is a separate microservice which handles each own type of requests from net-gateway - rest server. Because of the amount of such services we decided to create a trait which defines the skeleton of each one to reduce the code duplicate.
Documentation
use std::collections::HashMap;

use super::network_service_handler::NetworkServiceHandler;
use super::network_service_handler_manager::NetworkServiceHandlerManager;

#[derive(Default)]
pub struct NetworkServiceHandlerManagerBuilder {
    handlers: HashMap<String, Box<dyn NetworkServiceHandler>>
}

impl NetworkServiceHandlerManagerBuilder {
    pub fn add_handler(
        mut self,
        handler: Box<dyn NetworkServiceHandler>
    ) -> Self
    {
        //TODO: Create Error handling here
        let _ = self.handlers.insert(handler.get_handler_type(), handler);
        self
    }

    pub fn build(self) -> NetworkServiceHandlerManager {
        NetworkServiceHandlerManager::new(
            self.handlers
        )
    }
}