Began refactoring target descriptor structs.

This is incomplete - a partial commit of a substantial peice of work
This commit is contained in:
Nav
2024-03-21 15:03:06 +00:00
parent 6c82c4295a
commit 5d63b629e0
10 changed files with 394 additions and 112 deletions

View File

@@ -0,0 +1,32 @@
#pragma once
#include <string>
#include <map>
#include <optional>
#include <functional>
#include <string_view>
#include "TargetRegisterGroupDescriptor.hpp"
namespace Targets
{
struct TargetPeripheralDescriptor
{
public:
std::string key;
std::string name;
std::map<std::string, TargetRegisterGroupDescriptor, std::less<void>> registerGroupDescriptorsByKey;
TargetPeripheralDescriptor(
const std::string& key,
const std::string& name,
const std::map<std::string, TargetRegisterGroupDescriptor, std::less<void>>& registerGroupDescriptorsByKey
);
std::optional<std::reference_wrapper<const TargetRegisterGroupDescriptor>> tryGetRegisterGroupDescriptor(
std::string_view keyStr
) const;
const TargetRegisterGroupDescriptor& getRegisterGroupDescriptor(std::string_view key) const;
};
}