14namespace fs = std::filesystem;
24 explicit FileName(fs::path path) : fs::path(std::move(path)) {}
35 explicit AssetPath(fs::path path) : fs::path(std::move(path)) {}
Factory class for loading Enigma Machine configurations. Handles the parsing of TOML files and the cr...
static ReflectorConfig loadReflector(const IAssetProvider &provider, const FileName &fileName)
Loads a single reflector configuration from a TOML file.
static EnigmaMachineConfig load(const IAssetProvider &provider, const FileName &fileName, const AssetPath &assetPath=AssetPath())
Loads the complete Enigma Machine configuration from a TOML file.
static RotorConfig loadRotor(const IAssetProvider &provider, const FileName &fileName)
Loads a single rotor configuration from a TOML file.
Interface for providing configuration/asset data. Abstracts the source of assets (filesystem,...
Strongly typed wrapper for asset paths. Used to distinguish between general file names and base asset...
Strongly typed wrapper for file names. Used to distinguish between general file names and base asset ...
Configuration Data Transfer Object (DTO) for the Enigma Machine. Holds the raw configuration data req...
Configuration structure for a Reflector.
Configuration structure for an individual Rotor.