public static void Serialize(this IEnumerable <UxlDocument> list, SourcePackage upk, string filename) { using (var w = UxlDocument.CreateWriter(upk, filename)) foreach (var e in list) { e.Write(w); } }
public static void Deserialize(SourcePackage upk, string filename, List <UxlDocument> resultAsync) { using (var r = UxlDocument.CreateReader(upk, filename)) { while (r.BaseStream.Position < r.BaseStream.Length) { var doc = UxlDocument.Read(r, upk); lock (resultAsync) resultAsync.Add(doc); } } }
public static UxlDocument Read(CacheReader f, SourcePackage upk) { var backend = (UxlBackendType)f.ReadByte(); var flags = (UxlDocumentFlags)f.ReadByte(); SourceValue?cond = null; if (flags.HasFlag(UxlDocumentFlags.HasCondition)) { cond = f.ReadGlobalValue(); } var doc = new UxlDocument(upk, backend, cond); if (flags.HasFlag(UxlDocumentFlags.Defines)) { f.ReadList(doc.Defines, UxlDefine.Read); } if (flags.HasFlag(UxlDocumentFlags.Usings)) { f.ReadList(doc.Usings, r => r.ReadGlobalValue()); } if (flags.HasFlag(UxlDocumentFlags.Declarations)) { f.ReadList(doc.Declarations, UxlDeclare.Read); } if (flags.HasFlag(UxlDocumentFlags.Deprecations)) { f.ReadList(doc.Deprecations, UxlDeprecate.Read); } if (flags.HasFlag(UxlDocumentFlags.Templates)) { f.ReadList(doc.Templates, UxlTemplate.Read); } if (flags.HasFlag(UxlDocumentFlags.Types)) { f.ReadList(doc.Types, UxlType.Read); } var entityFlags = (UxlEntityFlags)f.ReadByte(); doc.ReadEntity(f, entityFlags); return(doc); }