ocpp_rs 0.4.0

no_std + alloc OCPP 1.6 and 2.1 protocol library (OCPP-J parse/serialize, CallResult correlation).
Documentation
//! AUTO-GENERATED by `tools/gen_device_model.py` — do not edit by hand.

/// Standard component names from OCPP 2.1 Part 2 appendices.
pub const STANDARD_COMPONENTS: &[&str] = &[
    "ACDERCtrlr",
    "AlignedDataCtrlr",
    "AuthCacheCtrlr",
    "AuthCtrlr",
    "BatterySwapCtrlr",
    "CHAdeMOCtrlr",
    "ClockCtrlr",
    "CustomizationCtrlr",
    "DCDERCtrlr",
    "DeviceDataCtrlr",
    "DisplayMessageCtrlr",
    "ISO15118Ctrlr",
    "LocalAuthListCtrlr",
    "MonitoringCtrlr",
    "PaymentCtrlr",
    "OCPPCommCtrlr",
    "ReservationCtrlr",
    "SampledDataCtrlr",
    "SecurityCtrlr",
    "SmartChargingCtrlr",
    "TariffCostCtrlr",
    "TxCtrlr",
    "V2XChargingCtrlr",
    "WebPaymentsCtrlr",
    "AccessBarrier",
    "AcDcConverter",
    "AcPhaseSelector",
    "Actuator",
    "AirCoolingSystem",
    "AreaVentilation",
    "BatteryCartridge",
    "BayOccupancySensor",
    "BeaconLighting",
    "CableBreakawaySensor",
    "CaseAccessSensor",
    "ChargingStation",
    "ChargingStatusIndicator",
    "ConnectedEV",
    "Connector",
    "ConnectorHolsterRelease",
    "ConnectorHolsterSensor",
    "ConnectorPlugRetentionLock",
    "ConnectorProtectionRelease",
    "Controller",
    "ControlMetering",
    "CPPWMController",
    "DataLink",
    "Display",
    "DistributionPanel",
    "ElectricalFeed",
    "ELVSupply",
    "EmergencyStopSensor",
    "EnvironmentalLighting",
    "EVRetentionLock",
    "EVSE",
    "ExternalTemperatureSensor",
    "FiscalMetering",
    "FloodSensor",
    "GroundIsolationProtection",
    "Heater",
    "HumiditySensor",
    "LightSensor",
    "LiquidCoolingSystem",
    "LocalAvailabilitySensor",
    "LocalController",
    "LocalEnergyStorage",
    "NetworkConfiguration",
    "OverCurrentProtection",
    "OverCurrentProtectionRecloser",
    "PowerContactor",
    "RCD",
    "RCDRecloser",
    "RealTimeClock",
    "ShockSensor",
    "SpacesCountSignage",
    "Switch",
    "TemperatureSensor",
    "TiltSensor",
    "TokenReader",
    "UpstreamProtectionTrigger",
    "UIInput",
    "VehicleIdSensor",
];

/// Case-insensitive check against [`STANDARD_COMPONENTS`].
#[must_use]
pub fn is_standard_component(name: &str) -> bool {
    STANDARD_COMPONENTS
        .iter()
        .any(|c| c.eq_ignore_ascii_case(name))
}