using System.IO;
using System.Text;
using SabreTools.Serialization.Interfaces;
namespace SabreTools.Serialization.Files
{
///
/// Base class for other JSON serializers
///
///
public partial class JsonFile : IFileSerializer
{
///
public bool Serialize(T? obj, string? path)
=> Serialize(obj, path, new UTF8Encoding(false));
///
/// Serialize a into a file
///
/// Type of object to serialize from
/// Data to serialize
/// Path to the file to serialize to
/// Encoding to parse text as
/// True on successful serialization, false otherwise
public bool Serialize(T? obj, string? path, Encoding encoding)
{
if (string.IsNullOrEmpty(path))
return false;
using var stream = new Streams.JsonFile().Serialize(obj, encoding);
if (stream == null)
return false;
using var fs = File.OpenWrite(path);
stream.CopyTo(fs);
return true;
}
}
}