ocpp-csms-server-sdk 0.1.47

A workspace for the OCPP CSMS server
Documentation
use crate::ocpp_csms_server;
use crate::types::connector::Connector;
use std::str::FromStr;
use uuid::Uuid;

#[derive(Debug, Clone, Default)]
pub struct Evse {
    pub id: Uuid,
    pub charger_id: String,
    pub ocpp_id: u32,
    pub connectors: Vec<Connector>,
}

impl TryFrom<ocpp_csms_server::Evse> for Evse {
    type Error = Box<dyn std::error::Error + Send + Sync + 'static>;
    fn try_from(value: ocpp_csms_server::Evse) -> Result<Self, Self::Error> {
        Ok(Self {
            id: Uuid::from_str(&value.id)?,
            charger_id: value.charger_id,
            ocpp_id: value.ocpp_id,
            connectors: value
                .connectors
                .into_iter()
                .map(Connector::try_from)
                .collect::<Result<Vec<_>, _>>()?,
        })
    }
}