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"))); } } }