#pragma once

#include <concepts>
#include <functional>

namespace snoop {


template<typename T>
concept AudioWriterConcept = requires( T writer, int sampleRate, int channels, std::string filePath, const char* data, size_t size, size_t frames )
{
    T( sampleRate, channels );
    { writer.StartWriting( filePath ) } -> std::same_as<void>;
    { writer.StopWriting() } -> std::same_as<void>;
    { writer.Write( data, size, frames ) } -> std::same_as<void>;
};


}