mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-09-23 07:14:57 +00:00
Migrate IByteSerializer implementation to base class
This commit is contained in:
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class AACS :
|
||||
BaseBinaryDeserializer<MediaKeyBlock>,
|
||||
IByteDeserializer<MediaKeyBlock>,
|
||||
IFileDeserializer<MediaKeyBlock>,
|
||||
IStreamDeserializer<MediaKeyBlock>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public MediaKeyBlock? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,7 +10,6 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class AttractMode :
|
||||
BaseBinaryDeserializer<MetadataFile>,
|
||||
IByteDeserializer<MetadataFile>,
|
||||
IFileDeserializer<MetadataFile>,
|
||||
IStreamDeserializer<MetadataFile>
|
||||
{
|
||||
@@ -22,26 +21,6 @@ namespace SabreTools.Serialization.Deserializers
|
||||
|
||||
#endregion
|
||||
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public MetadataFile? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class BDPlus :
|
||||
BaseBinaryDeserializer<SVM>,
|
||||
IByteDeserializer<SVM>,
|
||||
IFileDeserializer<SVM>,
|
||||
IStreamDeserializer<SVM>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public SVM? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class BFPK :
|
||||
BaseBinaryDeserializer<Archive>,
|
||||
IByteDeserializer<Archive>,
|
||||
IFileDeserializer<Archive>,
|
||||
IStreamDeserializer<Archive>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Archive? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class BSP :
|
||||
BaseBinaryDeserializer<Models.BSP.File>,
|
||||
IByteDeserializer<Models.BSP.File>,
|
||||
IFileDeserializer<Models.BSP.File>,
|
||||
IStreamDeserializer<Models.BSP.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.BSP.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -13,7 +13,28 @@ namespace SabreTools.Serialization.Deserializers
|
||||
/// <typeparam name="TModel">Type of the model to deserialize</typeparam>
|
||||
/// <remarks>These methods assume there is a concrete implementation of the deserialzier for the model available</remarks>
|
||||
public abstract class BaseBinaryDeserializer<TModel>
|
||||
: IByteDeserializer<TModel>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public virtual TModel? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return default;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return default;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Static Implementations
|
||||
|
||||
/// <inheritdoc cref="IByteDeserializer.Deserialize(byte[]?, int)"/>
|
||||
@@ -47,6 +68,8 @@ namespace SabreTools.Serialization.Deserializers
|
||||
|
||||
#endregion
|
||||
|
||||
#region Helpers
|
||||
|
||||
/// <summary>
|
||||
/// Get a constructed instance of a type, if possible
|
||||
/// </summary>
|
||||
@@ -84,5 +107,7 @@ namespace SabreTools.Serialization.Deserializers
|
||||
|
||||
return default;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -11,30 +11,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class CFB :
|
||||
BaseBinaryDeserializer<Binary>,
|
||||
IByteDeserializer<Binary>,
|
||||
IFileDeserializer<Binary>,
|
||||
IStreamDeserializer<Binary>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Binary? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class CIA :
|
||||
BaseBinaryDeserializer<Models.N3DS.CIA>,
|
||||
IByteDeserializer<Models.N3DS.CIA>,
|
||||
IFileDeserializer<Models.N3DS.CIA>,
|
||||
IStreamDeserializer<Models.N3DS.CIA>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.N3DS.CIA? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,41 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class ClrMamePro :
|
||||
BaseBinaryDeserializer<MetadataFile>,
|
||||
IByteDeserializer<MetadataFile>,
|
||||
IFileDeserializer<MetadataFile>,
|
||||
IStreamDeserializer<MetadataFile>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc cref="IByteDeserializer.Deserialize(byte[]?, int)"/>
|
||||
public static MetadataFile? DeserializeBytes(byte[]? data, int offset, bool quotes = true)
|
||||
{
|
||||
var deserializer = new ClrMamePro();
|
||||
return deserializer.Deserialize(data, offset, quotes);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public MetadataFile? Deserialize(byte[]? data, int offset)
|
||||
=> Deserialize(data, offset, true);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public MetadataFile? Deserialize(byte[]? data, int offset, bool quotes)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream, quotes);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc cref="IFileDeserializer.Deserialize(string?)"/>
|
||||
|
||||
@@ -11,30 +11,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class CueSheet :
|
||||
BaseBinaryDeserializer<Models.CueSheets.CueSheet>,
|
||||
IByteDeserializer<Models.CueSheets.CueSheet>,
|
||||
IFileDeserializer<Models.CueSheets.CueSheet>,
|
||||
IStreamDeserializer<Models.CueSheets.CueSheet>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.CueSheets.CueSheet? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class DosCenter :
|
||||
BaseBinaryDeserializer<MetadataFile>,
|
||||
IByteDeserializer<MetadataFile>,
|
||||
IFileDeserializer<MetadataFile>,
|
||||
IStreamDeserializer<MetadataFile>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public MetadataFile? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class EverdriveSMDB :
|
||||
BaseBinaryDeserializer<MetadataFile>,
|
||||
IByteDeserializer<MetadataFile>,
|
||||
IFileDeserializer<MetadataFile>,
|
||||
IStreamDeserializer<MetadataFile>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public MetadataFile? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class GCF :
|
||||
BaseBinaryDeserializer<Models.GCF.File>,
|
||||
IByteDeserializer<Models.GCF.File>,
|
||||
IFileDeserializer<Models.GCF.File>,
|
||||
IStreamDeserializer<Models.GCF.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.GCF.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,7 +10,6 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class Hashfile :
|
||||
BaseBinaryDeserializer<Models.Hashfile.Hashfile>,
|
||||
IByteDeserializer<Models.Hashfile.Hashfile>,
|
||||
IFileDeserializer<Models.Hashfile.Hashfile>,
|
||||
IStreamDeserializer<Models.Hashfile.Hashfile>
|
||||
{
|
||||
@@ -24,7 +23,7 @@ namespace SabreTools.Serialization.Deserializers
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.Hashfile.Hashfile? Deserialize(byte[]? data, int offset)
|
||||
public override Models.Hashfile.Hashfile? Deserialize(byte[]? data, int offset)
|
||||
=> Deserialize(data, offset, HashType.CRC32);
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -7,30 +7,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class IRD :
|
||||
BaseBinaryDeserializer<Models.IRD.File>,
|
||||
IByteDeserializer<Models.IRD.File>,
|
||||
IFileDeserializer<Models.IRD.File>,
|
||||
IStreamDeserializer<Models.IRD.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.IRD.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -11,30 +11,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
// TODO: Add multi-cabinet reading
|
||||
public class InstallShieldCabinet :
|
||||
BaseBinaryDeserializer<Cabinet>,
|
||||
IByteDeserializer<Cabinet>,
|
||||
IFileDeserializer<Cabinet>,
|
||||
IStreamDeserializer<Cabinet>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Cabinet? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -11,14 +11,13 @@ namespace SabreTools.Serialization.Deserializers
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class JsonFile<T> :
|
||||
BaseBinaryDeserializer<T>,
|
||||
IByteDeserializer<T>,
|
||||
IFileDeserializer<T>,
|
||||
IStreamDeserializer<T>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public virtual T? Deserialize(byte[]? data, int offset)
|
||||
public override T? Deserialize(byte[]? data, int offset)
|
||||
=> Deserialize(data, offset, new UTF8Encoding(false));
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class LinearExecutable :
|
||||
BaseBinaryDeserializer<Executable>,
|
||||
IByteDeserializer<Executable>,
|
||||
IFileDeserializer<Executable>,
|
||||
IStreamDeserializer<Executable>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Executable? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class Listrom :
|
||||
BaseBinaryDeserializer<MetadataFile>,
|
||||
IByteDeserializer<MetadataFile>,
|
||||
IFileDeserializer<MetadataFile>,
|
||||
IStreamDeserializer<MetadataFile>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public MetadataFile? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class MSDOS :
|
||||
BaseBinaryDeserializer<Executable>,
|
||||
IByteDeserializer<Executable>,
|
||||
IFileDeserializer<Executable>,
|
||||
IStreamDeserializer<Executable>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Executable? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
// TODO: Add multi-cabinet reading
|
||||
public class MicrosoftCabinet :
|
||||
BaseBinaryDeserializer<Cabinet>,
|
||||
IByteDeserializer<Cabinet>,
|
||||
IFileDeserializer<Cabinet>,
|
||||
IStreamDeserializer<Cabinet>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Cabinet? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -11,30 +11,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class MoPaQ :
|
||||
BaseBinaryDeserializer<Archive>,
|
||||
IByteDeserializer<Archive>,
|
||||
IFileDeserializer<Archive>,
|
||||
IStreamDeserializer<Archive>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Archive? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class N3DS :
|
||||
BaseBinaryDeserializer<Cart>,
|
||||
IByteDeserializer<Cart>,
|
||||
IFileDeserializer<Cart>,
|
||||
IStreamDeserializer<Cart>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Cart? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class NCF :
|
||||
BaseBinaryDeserializer<Models.NCF.File>,
|
||||
IByteDeserializer<Models.NCF.File>,
|
||||
IFileDeserializer<Models.NCF.File>,
|
||||
IStreamDeserializer<Models.NCF.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.NCF.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -11,30 +11,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class NewExecutable :
|
||||
BaseBinaryDeserializer<Executable>,
|
||||
IByteDeserializer<Executable>,
|
||||
IFileDeserializer<Executable>,
|
||||
IStreamDeserializer<Executable>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Executable? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class Nitro :
|
||||
BaseBinaryDeserializer<Cart>,
|
||||
IByteDeserializer<Cart>,
|
||||
IFileDeserializer<Cart>,
|
||||
IStreamDeserializer<Cart>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Cart? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class PAK :
|
||||
BaseBinaryDeserializer<Models.PAK.File>,
|
||||
IByteDeserializer<Models.PAK.File>,
|
||||
IFileDeserializer<Models.PAK.File>,
|
||||
IStreamDeserializer<Models.PAK.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.PAK.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class PFF :
|
||||
BaseBinaryDeserializer<Archive>,
|
||||
IByteDeserializer<Archive>,
|
||||
IFileDeserializer<Archive>,
|
||||
IStreamDeserializer<Archive>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Archive? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class PIC :
|
||||
BaseBinaryDeserializer<DiscInformation>,
|
||||
IByteDeserializer<DiscInformation>,
|
||||
IFileDeserializer<DiscInformation>,
|
||||
IStreamDeserializer<DiscInformation>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public DiscInformation? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class PlayJAudio :
|
||||
BaseBinaryDeserializer<AudioFile>,
|
||||
IByteDeserializer<AudioFile>,
|
||||
IFileDeserializer<AudioFile>,
|
||||
IStreamDeserializer<AudioFile>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public AudioFile? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -7,30 +7,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class PlayJPlaylist :
|
||||
BaseBinaryDeserializer<Playlist>,
|
||||
IByteDeserializer<Playlist>,
|
||||
IFileDeserializer<Playlist>,
|
||||
IStreamDeserializer<Playlist>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Playlist? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -12,30 +12,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class PortableExecutable :
|
||||
BaseBinaryDeserializer<Executable>,
|
||||
IByteDeserializer<Executable>,
|
||||
IFileDeserializer<Executable>,
|
||||
IStreamDeserializer<Executable>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Executable? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class Quantum :
|
||||
BaseBinaryDeserializer<Archive>,
|
||||
IByteDeserializer<Archive>,
|
||||
IFileDeserializer<Archive>,
|
||||
IStreamDeserializer<Archive>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Archive? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class RomCenter :
|
||||
BaseBinaryDeserializer<MetadataFile>,
|
||||
IByteDeserializer<MetadataFile>,
|
||||
IFileDeserializer<MetadataFile>,
|
||||
IStreamDeserializer<MetadataFile>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public MetadataFile? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class SGA :
|
||||
BaseBinaryDeserializer<Models.SGA.File>,
|
||||
IByteDeserializer<Models.SGA.File>,
|
||||
IFileDeserializer<Models.SGA.File>,
|
||||
IStreamDeserializer<Models.SGA.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.SGA.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,7 +10,6 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class SeparatedValue :
|
||||
BaseBinaryDeserializer<MetadataFile>,
|
||||
IByteDeserializer<MetadataFile>,
|
||||
IFileDeserializer<MetadataFile>,
|
||||
IStreamDeserializer<MetadataFile>
|
||||
{
|
||||
@@ -32,7 +31,7 @@ namespace SabreTools.Serialization.Deserializers
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public MetadataFile? Deserialize(byte[]? data, int offset)
|
||||
public override MetadataFile? Deserialize(byte[]? data, int offset)
|
||||
=> Deserialize(data, offset, ',');
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class VBSP :
|
||||
BaseBinaryDeserializer<Models.VBSP.File>,
|
||||
IByteDeserializer<Models.VBSP.File>,
|
||||
IFileDeserializer<Models.VBSP.File>,
|
||||
IStreamDeserializer<Models.VBSP.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.VBSP.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -10,30 +10,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class VPK :
|
||||
BaseBinaryDeserializer<Models.VPK.File>,
|
||||
IByteDeserializer<Models.VPK.File>,
|
||||
IFileDeserializer<Models.VPK.File>,
|
||||
IStreamDeserializer<Models.VPK.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.VPK.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class WAD :
|
||||
BaseBinaryDeserializer<Models.WAD.File>,
|
||||
IByteDeserializer<Models.WAD.File>,
|
||||
IFileDeserializer<Models.WAD.File>,
|
||||
IStreamDeserializer<Models.WAD.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.WAD.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -9,30 +9,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
{
|
||||
public class XZP :
|
||||
BaseBinaryDeserializer<Models.XZP.File>,
|
||||
IByteDeserializer<Models.XZP.File>,
|
||||
IFileDeserializer<Models.XZP.File>,
|
||||
IStreamDeserializer<Models.XZP.File>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public Models.XZP.File? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return null;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return null;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return DeserializeStream(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -12,30 +12,9 @@ namespace SabreTools.Serialization.Deserializers
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class XmlFile<T> :
|
||||
BaseBinaryDeserializer<T>,
|
||||
IByteDeserializer<T>,
|
||||
IFileDeserializer<T>,
|
||||
IStreamDeserializer<T>
|
||||
{
|
||||
#region IByteDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
public T? Deserialize(byte[]? data, int offset)
|
||||
{
|
||||
// If the data is invalid
|
||||
if (data == null)
|
||||
return default;
|
||||
|
||||
// If the offset is out of bounds
|
||||
if (offset < 0 || offset >= data.Length)
|
||||
return default;
|
||||
|
||||
// Create a memory stream and parse that
|
||||
var dataStream = new MemoryStream(data, offset, data.Length - offset);
|
||||
return Deserialize(dataStream);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IFileDeserializer
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
Reference in New Issue
Block a user