From 2e52827bc1a7cee262ab394f79b2d8964e28a627 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Fri, 12 Feb 2021 17:04:23 +1000 Subject: [PATCH] Convert FirmwareOption to a readonly struct --- .../Database/FirmwareDatabase.cs | 8 +------- .../Database/FirmwareOption.cs | 20 ++++++++++++++----- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs index e35d134ec3..a33e16a3d9 100644 --- a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs +++ b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs @@ -37,13 +37,7 @@ namespace BizHawk.Emulation.Common isBad: isBad); void Option(string systemId, string id, in FirmwareFile ff, FirmwareOptionStatus status = FirmwareOptionStatus.Acceptable) - => options.Add(new FirmwareOption - { - ID = new(systemId, id), - Hash = ff.Hash, - Status = ff.IsBad ? FirmwareOptionStatus.Bad : status, - Size = ff.Size - }); + => options.Add(new(new(systemId, id), ff.Hash, ff.Size, ff.IsBad ? FirmwareOptionStatus.Bad : status)); void Firmware(string systemId, string id, string desc) => records.Add(new FirmwareRecord diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareOption.cs b/src/BizHawk.Emulation.Common/Database/FirmwareOption.cs index 6ba8daeeb9..9e93651d37 100644 --- a/src/BizHawk.Emulation.Common/Database/FirmwareOption.cs +++ b/src/BizHawk.Emulation.Common/Database/FirmwareOption.cs @@ -1,15 +1,25 @@ +#nullable enable + namespace BizHawk.Emulation.Common { - public sealed class FirmwareOption + public readonly struct FirmwareOption { - public string Hash { get; set; } + public readonly string Hash; - public FirmwareID ID { get; set; } + public readonly FirmwareID ID; public bool IsAcceptableOrIdeal => Status == FirmwareOptionStatus.Ideal || Status == FirmwareOptionStatus.Acceptable; - public long Size { get; set; } + public readonly long Size; - public FirmwareOptionStatus Status { get; set; } + public readonly FirmwareOptionStatus Status; + + public FirmwareOption(FirmwareID id, string hash, long size, FirmwareOptionStatus status) + { + Hash = hash; + ID = id; + Size = size; + Status = status; + } } }