ocpp-csms-server-sdk 0.1.45

A workspace for the OCPP CSMS server
Documentation
use crate::ocpp_csms_server;
use crate::types::{ConnectorStatus, ConnectorType};
use std::str::FromStr;
use uuid::Uuid;

#[derive(Debug, Clone, Default)]
pub struct Connector {
    pub id: Uuid,
    pub charger_id: String,
    pub evse_id: Uuid,
    pub ocpp_id: u32,
    pub connector_type: ConnectorType,
    pub status: ConnectorStatus,
}

impl TryFrom<ocpp_csms_server::Connector> for Connector {
    type Error = Box<dyn std::error::Error + Send + Sync + 'static>;
    fn try_from(value: ocpp_csms_server::Connector) -> Result<Self, Self::Error> {
        Ok(Self {
            id: Uuid::from_str(&value.id)?,
            charger_id: value.charger_id,
            evse_id: Uuid::from_str(&value.evse_id)?,
            ocpp_id: value.ocpp_id,
            connector_type: ocpp_csms_server::ConnectorType::try_from(value.r#type)
                .unwrap_or_default()
                .into(),
            status: ocpp_csms_server::ConnectorStatus::try_from(value.status)
                .unwrap_or_default()
                .into(),
        })
    }
}