コード例 #1
0
        public static IHierarchyReference ReadReferenceFrom(UnsafeReader reader)
        {
            var id = reader.ReadInt();

            if (id == 0)
            {
                return(new LocalReference(reader.ReadLong(), reader.ReadULong()));
            }
            if (id == 1)
            {
                return(new ExternalReference(reader.ReadGuid(), reader.ReadULong()));
            }

            throw new InvalidOperationException($"Unknown reference type, {id}");
        }
コード例 #2
0
        public static LocalReference ReadLocalReferenceFrom(UnsafeReader reader)
        {
            var id = reader.ReadInt();

            if (id != 0)
            {
                throw new InvalidOperationException($"Expected local reference, found {id}");
            }
            return(new LocalReference(reader.ReadLong(), reader.ReadULong()));
        }
コード例 #3
0
        public static ExternalReference ReadExternalReferenceFrom(UnsafeReader reader)
        {
            var id = reader.ReadInt();

            if (id != 1)
            {
                throw new InvalidOperationException($"Expected external reference, found {id}");
            }
            return(new ExternalReference(reader.ReadGuid(), reader.ReadULong()));
        }
コード例 #4
0
 private static object Read(UnsafeReader reader) => new LocalReference(reader.ReadLong(), reader.ReadULong());
コード例 #5
0
 public static OWORD ReadOWORD(UnsafeReader unsafeReader)
 {
     return(new OWORD(unsafeReader.ReadULong(), unsafeReader.ReadULong()));
 }
コード例 #6
0
 private static object Read(UnsafeReader reader)
 {
     return(new ExternalReference(reader.ReadString(), reader.ReadULong()));
 }