diff --git a/include/avnd/concepts/note_port.hpp b/include/avnd/concepts/note_port.hpp new file mode 100644 index 00000000..0c0e5d66 --- /dev/null +++ b/include/avnd/concepts/note_port.hpp @@ -0,0 +1,25 @@ +#pragma once + +/* SPDX-License-Identifier: GPL-3.0-or-later OR BSL-1.0 OR CC0-1.0 OR CC-PDCC OR 0BSD */ + +#include +#include +#include + +namespace avnd +{ + +// Note ports +// FIXME MPE, etc. +template +concept note_port = requires(T t) { t.notes; }; + +template +concept dynamic_container_notes = note_port && vector_ish; + +template +concept raw_container_note_port + = note_port && std::is_pointer_v + && std::is_integral_v; + +}