/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
test-logs
src/Npgsql.NodaTime/Internal/OffsetTimeConverter.cs
23 строки
858 B
Nino Floris
Remove PgBufferedConverter virtual dispatch hop (#6574)
15 май 2026, 18:24
Не верифицирован
15 май 2026, 18:24
78d37a1
Код
Авторство
О чём код?
using NodaTime; using Npgsql.Internal; namespace Npgsql.NodaTime.Internal; sealed class OffsetTimeConverter : PgBufferedConverter<OffsetTime> { public override bool CanConvert(DataFormat format, out BufferRequirements bufferRequirements) { bufferRequirements = BufferRequirements.CreateFixedSize(sizeof(long) + sizeof(int)); return format is DataFormat.Binary; } // Adjust from 1 microsecond to 100ns. Time zone (in seconds) is inverted. public override OffsetTime Read(PgReader reader) => new(LocalTime.FromTicksSinceMidnight(reader.ReadInt64() * 10), Offset.FromSeconds(-reader.ReadInt32())); public override void Write(PgWriter writer, OffsetTime value) { writer.WriteInt64(value.TickOfDay / 10); writer.WriteInt32(-(int)(value.Offset.Ticks / NodaConstants.TicksPerSecond)); } }