private SerializationStatus(SerializationResult result, object obj = null, Type alt = null, SerializationFixup fix = null, ulong[] missing_ids = null) { AltType = alt; Fix = fix; Object = obj; RequiredIDs = missing_ids; Result = result; }
internal Fixup(SerializationInstance instance, object o, SerializationFixup fix, ulong[] required_ids) { Completed = false; Fix = fix; Instance = instance; Object = o; RequiredIDs = new ulong[required_ids.Length]; required_ids.CopyTo(RequiredIDs, 0); }
/// <summary> /// Signals a delayed deserialization, returning a partially deserialized object for fixing later when the specified IDs are present /// </summary> /// <param name="o">The partially deserialized object</param> /// <param name="fix">The action to run once all the missing objects are deserialized</param> /// <param name="missing_ids">The missing object IDs, the fixup will be run once these are initially deserialized</param> /// <returns>A status stating deserialization couldn't be completed, but is in-progress</returns> public static SerializationStatus FixupLater(object o, SerializationFixup fix, ulong[] missing_ids) { if (fix == null) { throw new ArgumentNullException(nameof(fix)); } missing_ids = missing_ids ?? Array.Empty <ulong>(); return(new SerializationStatus(SerializationResult.NeedsFixing, obj: o, fix: fix, missing_ids: missing_ids)); }