mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
[AaruFormat] Add helper method to convert AaruFormat.Status to ErrorNumber
This commit is contained in:
50
Aaru.Images/AaruFormat/Helpers.cs
Normal file
50
Aaru.Images/AaruFormat/Helpers.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using Aaru.CommonTypes.Enums;
|
||||
|
||||
namespace Aaru.Images;
|
||||
|
||||
public sealed partial class AaruFormat
|
||||
{
|
||||
/// <summary>
|
||||
/// Converts an AaruFormat.Status to Aaru.CommonTypes.Enums.ErrorNumber.
|
||||
/// </summary>
|
||||
/// <param name="status">The AaruFormat status to convert</param>
|
||||
/// <returns>The corresponding ErrorNumber</returns>
|
||||
static ErrorNumber StatusToErrorNumber(Status status)
|
||||
{
|
||||
return status switch
|
||||
{
|
||||
Status.Ok => ErrorNumber.NoError,
|
||||
Status.NotAaruFormat => ErrorNumber.InvalidArgument,
|
||||
Status.FileTooSmall => ErrorNumber.InvalidArgument,
|
||||
Status.IncompatibleVersion => ErrorNumber.NotSupported,
|
||||
Status.CannotReadIndex => ErrorNumber.InOutError,
|
||||
Status.SectorOutOfBounds => ErrorNumber.OutOfRange,
|
||||
Status.CannotReadHeader => ErrorNumber.InOutError,
|
||||
Status.CannotReadBlock => ErrorNumber.InOutError,
|
||||
Status.UnsupportedCompression => ErrorNumber.NotSupported,
|
||||
Status.NotEnoughMemory => ErrorNumber.OutOfMemory,
|
||||
Status.BufferTooSmall => ErrorNumber.InvalidArgument,
|
||||
Status.MediaTagNotPresent => ErrorNumber.NoData,
|
||||
Status.IncorrectMediaType => ErrorNumber.InvalidArgument,
|
||||
Status.TrackNotFound => ErrorNumber.NoData,
|
||||
Status.ReachedUnreachableCode => ErrorNumber.InvalidArgument,
|
||||
Status.InvalidTrackFormat => ErrorNumber.InvalidArgument,
|
||||
Status.SectorTagNotPresent => ErrorNumber.NoData,
|
||||
Status.CannotDecompressBlock => ErrorNumber.InOutError,
|
||||
Status.InvalidBlockCrc => ErrorNumber.InOutError,
|
||||
Status.CannotCreateFile => ErrorNumber.InvalidArgument,
|
||||
Status.InvalidAppNameLength => ErrorNumber.InvalidArgument,
|
||||
Status.CannotWriteHeader => ErrorNumber.InOutError,
|
||||
Status.ReadOnly => ErrorNumber.ReadOnly,
|
||||
Status.CannotWriteBlockHeader => ErrorNumber.InOutError,
|
||||
Status.CannotWriteBlockData => ErrorNumber.InOutError,
|
||||
Status.CannotSetDdtEntry => ErrorNumber.InOutError,
|
||||
Status.IncorrectDataSize => ErrorNumber.InvalidArgument,
|
||||
Status.InvalidTag => ErrorNumber.InvalidArgument,
|
||||
Status.TapeFileNotFound => ErrorNumber.NoData,
|
||||
Status.TapePartitionNotFound => ErrorNumber.NoData,
|
||||
Status.MetadataNotPresent => ErrorNumber.NoData,
|
||||
_ => ErrorNumber.InvalidArgument
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -37,8 +37,7 @@ public sealed partial class AaruFormat
|
||||
|
||||
Status ret = aaruf_get_image_info(_context, ref imageInfo);
|
||||
|
||||
// TODO: Convert between error codes
|
||||
if(ret != Status.Ok) return (ErrorNumber)ret;
|
||||
if(ret != Status.Ok) return StatusToErrorNumber(ret);
|
||||
|
||||
_imageInfo.Application = StringHandlers.CToString(imageInfo.Application, Encoding.UTF8);
|
||||
_imageInfo.Version = StringHandlers.CToString(imageInfo.Version, Encoding.UTF8);
|
||||
|
||||
Reference in New Issue
Block a user