Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
schema_release.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include <cstdint>
6#include <span>
7#include <string_view>
8
9namespace pulp::timeline {
10
14
18 std::string_view type_name;
19 std::uint32_t version = 0;
20};
21
26 std::string_view release_label;
27 std::span<const SchemaVersionTarget> versions;
28
32 const SchemaVersionTarget* find(SchemaDomain domain, std::string_view type_name) const noexcept;
33};
34
36std::span<const SchemaReleaseMap> builtin_timeline_schema_releases() noexcept;
41find_builtin_timeline_schema_release(std::string_view release_label) noexcept;
42
44
45} // namespace pulp::timeline
SchemaDomain
Namespace in which a schema type name is unique.
Definition schema_registry.hpp:21
std::span< const SchemaReleaseMap > builtin_timeline_schema_releases() noexcept
Returns every built-in release projection in stable static storage.
const SchemaReleaseMap * find_builtin_timeline_schema_release(std::string_view release_label) noexcept
Finds a built-in release projection by exact label.
@ Document
Definition schema_registry.hpp:22
Definition program_compiler.hpp:18
STL namespace.
Immutable set of schema-version targets identified by a release label.
Definition schema_release.hpp:25
std::string_view release_label
Definition schema_release.hpp:26
const SchemaVersionTarget * find(SchemaDomain domain, std::string_view type_name) const noexcept
Finds a target by domain and type name.
std::span< const SchemaVersionTarget > versions
Definition schema_release.hpp:27
Target version for one schema identity in a release projection.
Definition schema_release.hpp:16
std::uint32_t version
Definition schema_release.hpp:19
SchemaDomain domain
Definition schema_release.hpp:17
std::string_view type_name
Definition schema_release.hpp:18