// Modul exportieren
export module cs;
// Namensraum cs exportieren
// Alles was im Namensraum cs definiert ist,
// wird ebenfalls exportiert!
export namespace cs
{
    // Funktion zu Berechnung der Pruefsumme
    auto Checksum(unsigned char* data, int size)
    {
        // Alle Elemente im Feld Exclusive-OR
        unsigned char cs = static_cast<unsigned long>(data[0]);
        for (auto index = 1; index < size; index++)
            cs ^= data[index];
        // Pruefsumme zurueckgeben
        return cs;
    }

    // Funktion zur Datenpruefung
    bool CheckData(unsigned char* data, int size, unsigned char cs)
    {
        // Alle Elemente im Feld Exclusive-OR
        unsigned char csCalc = data[0];
        for (auto index = 1; index < size; index++)
            csCalc ^= data[index];
        // Vergleich mit uebergebener Pruefsumme zurueckgeben
        return (cs == csCalc);
    }
}
