ot-tools-io 0.11.2

A library crate for reading/writing binary data files used by the Elektron Octatrack DPS-1.
Documentation
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2026 Mike Robeson [dijksterhuis]
*/

use crate::generics::Slots;
use crate::projects::SlotAttributes;
use serde::{ser::SerializeStruct, Serialize, Serializer};

impl Serialize for Slots<Option<SlotAttributes>> {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        let mut state = serializer.serialize_struct("Slots<Option<SlotAttributes>>", 3)?;
        state.serialize_field("flex_slots", &self.flex_slots)?;
        state.serialize_field("recording_buffers", &self.recording_buffers)?;
        state.serialize_field("static_slots", &self.static_slots)?;
        state.end()
    }
}