From 493d18b8292fc03aa4f835fd825dea1183f97466 Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Thu, 14 Jul 2022 15:08:22 +0300 Subject: [PATCH] Add findFieldIdx --- serialization/object_serialization.nim | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/serialization/object_serialization.nim b/serialization/object_serialization.nim index 169631a..8b8ece5 100644 --- a/serialization/object_serialization.nim +++ b/serialization/object_serialization.nim @@ -247,6 +247,20 @@ proc fieldReadersTable*(RecordType, ReaderType: distinct type): tbl[] = makeFieldReadersTable(RecordType, ReaderType) return addr(tbl[]) +proc findFieldIdx*(fieldsTable: FieldReadersTable, + fieldName: string, + expectedFieldPos: var int): int = + for i in expectedFieldPos ..< fieldsTable.len: + if fieldsTable[i].fieldName == fieldName: + expectedFieldPos = i + 1 + return i + + for i in 0 ..< expectedFieldPos: + if fieldsTable[i].fieldName == fieldName: + return i + + return -1 + proc findFieldReader*(fieldsTable: FieldReadersTable, fieldName: string, expectedFieldPos: var int): auto =