using Vellum;
namespace Azimuth.Vellum
{
///
/// Saves a Complex as its real and imaginary parts.
///
public sealed class ComplexConverter : SaveConverter
{
public override SaveNode Write(Complex value, SaveSession session)
{
SaveNode returnMe = SaveNode.NewTable();
returnMe.Entries["Real"] = session.ToNode(value.Real);
returnMe.Entries["Imaginary"] = session.ToNode(value.Imaginary);
return returnMe;
}
public override Complex Read(SaveNode node, SaveSession session)
{
return new Complex(
session.FromNode(node.RequireEntry("Real")),
session.FromNode(node.RequireEntry("Imaginary")));
}
}
}