public object Read(IPackStreamReader reader, byte signature, long size) { switch (signature) { case Point2DStructType: { PackStream.EnsureStructSize("Point2D", Point2DStructSize, size); var srId = reader.ReadInteger(); var x = reader.ReadDouble(); var y = reader.ReadDouble(); return(new CypherPoint(srId, x, y)); } case Point3DStructType: { PackStream.EnsureStructSize("Point3D", Point3DStructSize, size); var srId = reader.ReadInteger(); var x = reader.ReadDouble(); var y = reader.ReadDouble(); var z = reader.ReadDouble(); return(new CypherPoint(srId, x, y, z)); } default: throw new ProtocolException( $"Unsupported struct signature {signature} passed to {nameof(PointHandler)}!"); } }
public object Read(IPackStreamReader reader, byte signature, long size) { PackStream.EnsureStructSize("DateTimeWithOffset", StructSize, size); var epochSecondsUtc = reader.ReadLong(); var nanosOfSecond = reader.ReadInteger(); var offsetSeconds = reader.ReadInteger(); return(new CypherDateTimeWithOffset(epochSecondsUtc, nanosOfSecond, offsetSeconds)); }
public object Deserialize(IPackStreamReader reader, byte signature, long size) { PackStream.EnsureStructSize("LocalDateTime", StructSize, size); var epochSeconds = reader.ReadLong(); var nanosOfSecond = reader.ReadInteger(); return(TemporalHelpers.EpochSecondsAndNanoToDateTime(epochSeconds, nanosOfSecond)); }
public object Deserialize(IPackStreamReader reader, byte signature, long size) { PackStream.EnsureStructSize("Time", StructSize, size); var nanosOfDay = reader.ReadLong(); var offsetSeconds = reader.ReadInteger(); return(new OffsetTime(TemporalHelpers.NanoOfDayToTime(nanosOfDay), offsetSeconds)); }
public object Read(IPackStreamReader reader, byte signature, long size) { PackStream.EnsureStructSize("Time", StructSize, size); var nanosOfDay = reader.ReadLong(); var offsetSeconds = reader.ReadInteger(); return(new CypherTimeWithOffset(nanosOfDay, offsetSeconds)); }
public object Read(IPackStreamReader reader, byte signature, long size) { PackStream.EnsureStructSize("LocalDateTime", StructSize, size); var epochSeconds = reader.ReadLong(); var nanosOfSecond = reader.ReadInteger(); return(new CypherDateTime(epochSeconds, nanosOfSecond)); }
public object Read(IPackStreamReader reader, byte signature, long size) { PackStream.EnsureStructSize("DateTimeWithZoneId", StructSize, size); var epochSecondsUtc = reader.ReadLong(); var nanosOfSecond = reader.ReadInteger(); var zoneId = reader.ReadString(); return(new CypherDateTimeWithZoneId(epochSecondsUtc, nanosOfSecond, zoneId)); }
public object Deserialize(IPackStreamReader reader, byte signature, long size) { PackStream.EnsureStructSize("Duration", StructSize, size); var months = reader.ReadLong(); var days = reader.ReadLong(); var seconds = reader.ReadLong(); var nanos = reader.ReadInteger(); return(new Duration(months, days, seconds, nanos)); }
public object Deserialize(IPackStreamReader reader, byte signature, long size) { PackStream.EnsureStructSize($"ZonedDateTime[{(char) signature}]", StructSize, size); var epochSecondsUtc = reader.ReadLong(); var nanosOfSecond = reader.ReadInteger(); switch (signature) { case StructTypeWithId: return(new ZonedDateTime( TemporalHelpers.EpochSecondsAndNanoToDateTime(epochSecondsUtc, nanosOfSecond), Zone.Of(reader.ReadString()))); case StructTypeWithOffset: return(new ZonedDateTime( TemporalHelpers.EpochSecondsAndNanoToDateTime(epochSecondsUtc, nanosOfSecond), Zone.Of(reader.ReadInteger()))); default: throw new ProtocolException( $"Unsupported struct signature {signature} passed to {nameof(ZonedDateTimeSerializer)}!"); } }