Files
SabreTools.Serialization/SabreTools.Serialization.Writers/OpenMSX.cs
Matt Nadareski 7689c6dd07 Libraries
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.Serialization` still builds the normal Nuget package that is used by all other projects and includes all namespaces.
2026-03-21 16:26:56 -04:00

57 lines
1.6 KiB
C#

using System.IO;
using SabreTools.Data.Models.OpenMSX;
namespace SabreTools.Serialization.Writers
{
public class OpenMSX : XmlFile<SoftwareDb>
{
#region Constants
/// <summary>
/// name field for DOCTYPE
/// </summary>
public const string DocTypeName = "softwaredb";
/// <summary>
/// pubid field for DOCTYPE
/// </summary>
public const string? DocTypePubId = null;
/// <summary>
/// sysid field for DOCTYPE
/// </summary>
public const string DocTypeSysId = "softwaredb1.dtd";
/// <summary>
/// subset field for DOCTYPE
/// </summary>
public const string? DocTypeSubset = null;
#endregion
#region IByteWriter
/// <inheritdoc cref="XmlFile.SerializeArray(T?, string?, string?, string?, string?)" />
public override byte[]? SerializeArray(SoftwareDb? obj)
=> SerializeArray(obj, DocTypeName, DocTypePubId, DocTypeSysId, DocTypeSysId);
#endregion
#region IFileWriter
/// <inheritdoc cref="XmlFile.Serialize(T?, string?, string?, string?, string?, string?)" />
public override bool SerializeFile(SoftwareDb? obj, string? path)
=> Serialize(obj, path, DocTypeName, DocTypePubId, DocTypeSysId, DocTypeSysId);
#endregion
#region IStreamWriter
/// <inheritdoc cref="XmlFile.Serialize(T?, string?, string?, string?, string?)" />
public override Stream? SerializeStream(SoftwareDb? obj)
=> Serialize(obj, DocTypeName, DocTypePubId, DocTypeSysId, DocTypeSysId);
#endregion
}
}