macro_rules! scalar_keys {
($($name:ident),* $(,)?) => {
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[rustfmt::skip]
pub(crate) enum Key {
$($name,)*
Network(super::network::NetworkKey),
Printer(super::printer::PrinterKey),
}
#[cfg(test)]
pub(super) const SCALAR_KEYS: &[Key] = &[$(Key::$name),*];
};
}
#[rustfmt::skip]
scalar_keys! {
MenuFile, MenuMp, MenuView, MenuSettings, MenuHelp,
HelpShowDocs, HelpAbout, HelpDialogTitle, HelpSearchPlaceholder,
HnIntroduction, HnAbout, HnFeatures, HnGeneralPrinciples,
HnCpuArchitecture, HnRegisters, HnFlagsRegister,
HnMemoryIoSpaces, HnInstructionSet, HnDataTransferCommands, HnLogicalCommands,
HnArithmeticCommands, HnControlTransferCommands, HnProcessorControlCommands,
HnIoCommands, HnStackCommands, HnProgramInterface, HnMainWindow, HnMainMenu,
HnMenuFile, HnMenuMpSystem, HnMenuView, HnMenuHelp,
HnExternalDevices, HnMonitor, HnFloppy, HnHdd, HnNetwork, HnPrinter,
HnRamEditing, HnRegisterEditing, HnRunButtons, HnMemorySearch,
HnFilesExport, HnSaveLoad, HnImport, HnExport, HnSettings,
HnGeneralSettings, HnAppearance, HnCommandSummary, HnTopicShortcuts,
HcAbout, HcFeatures, HcGeneralPrinciples, HcRegisters,
HcFlagsRegister, HcMemoryIoSpaces, HcDataTransferCommands, HcLogicalCommands,
HcArithmeticCommands, HcControlTransferCommands, HcProcessorControlCommands,
HcIoCommands, HcStackCommands, HcMainWindow, HcMenuFile, HcMenuMpSystem,
HcMenuView, HcMenuHelp, HcMonitor, HcFloppy, HcHdd, HcNetwork,
HcPrinter, HcRamEditing, HcRegisterEditing, HcRunButtons, HcMemorySearch,
HcSaveLoad, HcImport, HcExport, HcGeneralSettings, HcAppearance,
HcCommandSummary, HcShortcuts,
AboutTitle, AppName, AboutDescription, AboutVersion, AboutGithubLabel, AboutChangelogLabel,
ChangelogTitle, ChangelogAllVersions,
FileNew, FileOpen, FileSave, FileSaveAs, FileImport, FileExport,
SubprogramTitleOpen, SubprogramTitleSave, SubprogramStartAddress,
SubprogramEndAddress, SubprogramAddressHint,
ExportFormatXlsx, ExportFormatText, ExportPageLabel, ExportPageDefault,
ExportPageNameBase, ExportSectionLabel, ExportSectionDefault, ExportSectionNameBase,
ExportAddPageTooltip, ExportAddSectionTooltip, ExportDeletePageTooltip,
ExportDeleteSectionTooltip, ExportMemoryGroup, ExportRegistersGroup, ExportFlagsGroup,
ExportRangeFrom, ExportRangeTo, ExportColumnAddress, ExportColumnValue,
ExportColumnCommand, ExportColumnComment, ExportRegisterAccumulator,
ExportRegisterStackPointer, ExportRegisterProgramCounter, ExportRegisterCycles,
ImportFileLabel, ImportNoTargets, ImportSheetLabel, ImportSectionLabel,
ImportBrowseTooltip, ImportDropPrompt, ImportDropOr, ImportSupportedFormats,
ImportChooseFileRequired,
MpRunProgram, MpRunInstruction, MpRunTact, MpResetRam, MpResetCpu, MpClearHalt,
FileDropOpenHint, DiscardCancel, DiscardBody, DiscardBodyDrop, DiscardBodyDeleteHdd, DiscardTitleOpen,
DiscardTitleDrop, DiscardTitleNew, DiscardTitleImport, DiscardTitleClose,
DiscardTitleDeleteHdd, DiscardConfirmOpen, DiscardConfirmNew, DiscardConfirmImport,
DiscardConfirmClose, DiscardConfirmDeleteHdd,
StatusReady, StatusNewFile, StatusCpuHalted, StatusStopped, StatusTact, StatusCycle,
StatusOpened, StatusSavedTo, StatusExportTo, StatusImportFrom, ErrorPrefix, HaltNotice,
SpeedTitle, SpeedUnit,
SettingsTitle, SettingsSavedNotice, SettingsSearchPlaceholder, SettingsCategoryGeneral,
SettingsCategoryExternalDevices, SettingsCategoryAppearance, SettingsCategoryShortcuts,
SettingsLanguageLabel, SettingsLanguageHint, SettingsSpeedLabel, SettingsSpeedHint,
SettingsFollowPcLabel, SettingsFollowPcHint, SettingsMemoryOperandHighlightingLabel,
SettingsMemoryOperandHighlightingHint, SettingsFloppyImageLabel, SettingsFloppyImageHint,
SettingsFloppyImageBrowse, SettingsHddDirectoryLabel, SettingsHddDirectoryHint,
SettingsHddDirectoryBrowse, SettingsPrinterLabel, SettingsPrinterHint, SettingsPrinterSetup,
SettingsPrinterSystemDefault, SettingsPrinterClear, SettingsPrinterDialogModeLabel,
SettingsPrinterDialogModeHint, SettingsPrinterDialogModeCustom, SettingsPrinterDialogModeSystem,
SettingsFileAssociationLabel, SettingsFileAssociationHint, SettingsFileAssociationAdd,
SettingsFileAssociationRemove, ErrHddDirectoryNotWritable, SettingsToggleOn,
SettingsToggleOff, SettingsThemeLabel, SettingsThemeHint, SettingsShortcutsLabel,
SettingsShortcutsHint, SettingsNoMatches, SettingsReset, SettingsResetConfirmTitle,
SettingsResetConfirmBody,
SettingsResetConfirmAction, LangRussian, LangEnglish, SpeedSlow, SpeedMedium,
SpeedHigh, SpeedMax,
HeaderStatus, HltOn, HltOff,
RegistersAndOperands, Accumulator, BufferRegister1, BufferRegister2, AddressBuffer,
AddressBufferTooltip, InstructionRegister, InstructionRegisterTooltip, InstructionDecoder,
InstructionDecoderTooltip, ControlSignals, CurrentCommand, DataBuffer, DataBufferTooltip,
FlagsRegister, FlagsRegisterTooltip, StatusRegister, PswTooltip, StackPointerTooltip,
ProgramCounterTooltip, IncDecTooltip,
Multiplexer, TempStorageRegisters, GeneralPurposeRegisters, StackPointer, ProgramCounter, IncDec,
LampF2, LampF1, LampSync, LampReady, LampWait, LampHold, LampInt, LampInte, LampDbin,
LampWr, LampHlda,
CyclesAndTacts, CycleLabel, TactLabel, CycleTooltip, TactTooltip, InternalTimings,
TotalTacts, InstructionTact, PhaseLabel, TotalTactsTooltip, InstructionTactTooltip, PhaseTooltip,
MemoryListTitle, ColumnAddress, ColumnValue, ColumnCommand,
MemoryEditorTitle, RegisterEditorTitle, ActionPause, ActionRunProgram, ActionRestartProgram,
ActionStepInstruction, ActionStepTact, ActionResetRam, ActionResetCpu, ExecutionPanel, ResetPanel,
QuickAccess, DeviceMonitor, DeviceFloppy, DeviceHdd, DeviceNetwork, DevicePrinter, ViewStackArea,
MonitorUnifiedScreen, MonitorTextLayer, MonitorPixelLayer, MonitorHexBuffer, MonitorClose,
MonitorDetach, MonitorAttach, MonitorPin, MonitorUnpin, MonitorViewSplit, MonitorViewUnified,
MonitorClearBuffer, MonitorSaveImage, MonitorImageSaved, MonitorImageSaveFailed,
MonitorHexFilterAll, MonitorHexFilterGraphics, MonitorHexFilterText,
FloppyContent, FloppyImageContent, FloppyStatus, FloppyPath, FloppyPathMissing,
FloppyImagePathMissing, FloppyBytesQueued, FloppyClearBuffer, FloppyShowImageContents,
FloppyOpenImage, FloppyDetachImage, FloppySaveBuffer, FloppyDebugBuffer, FloppyImageAttached,
FloppyImageDetached, FloppyDebugEnabled, FloppyBufferSaved,
HddContent, HddImageContent, HddStatus, HddPath, HddPathMissing, HddImagePathMissing,
HddBytesQueued, HddClearBuffer, HddClose, HddChooseDirectory, HddShowImageContents,
HddDebugBuffer, HddDeleteFile, HddCreateFile, HddDebugEnabled, HddFileDeleted,
DeviceStatusReady, DeviceStatusNotReady, DeviceStatusBusy, DeviceStatusNoData,
DeviceStatusConnected, DeviceStatusListening, DeviceStatusDisconnected,
ColCmdCode, ColCmdMnemonic, ColCmdOperand, ColCmdLength, ColCmdKind, ColCmdAddressing,
CmdLengthByte, CmdLengthBytes2, CmdLengthBytes3, CmdKindUnknown, CmdKindControl,
CmdKindBranch, CmdKindStack, CmdKindIo, CmdKindMove, CmdKindLogic, CmdKindArithmetic,
CmdAddrImplicit, CmdAddrImmediate, CmdAddrDirect, CmdAddrIndirect, CmdAddrRegister,
OpcodeSearchPlaceholder,
StatusByteHeader, StatusPrefix, StatusNoProgramAt, StatusNothingToUndo, StatusNothingToRedo,
StatusEnterHexPattern, StatusInvalidMemoryBytes, StatusMemoryBytesOutOfRange,
StatusInvalidByteHex, StatusInvalidAddressHex, HddImageAttached,
StatusPatternFound, StatusAtAddress, StatusNoMatchesFor,
ErrNotA580File, ErrNotAKrsFile, ErrUnsupportedDroppedFile, ErrUnsupportedImportFile,
ErrFileEmpty, ErrWrong580Size,
ErrLegacyTrailerCorrupt, SubprogramRangeInvalid,
ErrSettingsNewerVersion, ErrSettingsCorrupt, ErrCannotReadFileFormat, ErrCannotReadFile,
ErrCannotWriteTable, ErrCannotWriteFile, ErrFileNotFound, ErrPermissionDenied,
ErrFileAlreadyExists, ErrDiskFull, ErrIoGeneric, ErrAddressOutOfRange, ErrUnknownRegister,
ErrUndocumentedOpcode, ErrFloppyImageNotAttached, ErrInternal, ErrGenericFailed,
}