From 419c1cf92bea49cc7370da8b1c5566b6918d0da1 Mon Sep 17 00:00:00 2001 From: jmgomez Date: Sat, 21 Sep 2024 01:17:50 +0100 Subject: [PATCH 1/4] makes it compile with nim 2.1.99 --- src/anonimongo/core/bson.nim | 5 +++-- src/anonimongo/core/macroto_v2.nim | 4 ++++ src/anonimongo/core/types.nim | 8 ++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/anonimongo/core/bson.nim b/src/anonimongo/core/bson.nim index e8b1a0c..d3d987e 100644 --- a/src/anonimongo/core/bson.nim +++ b/src/anonimongo/core/bson.nim @@ -1011,11 +1011,12 @@ proc decode*(strbytes: string): BsonDocument = encoded: true ) -proc newBson*(table: varargs[(string, BsonBase)]): BsonDocument = +proc newBson*(first: (string, BsonBase), table: varargs[(string, BsonBase)]): BsonDocument = var tableres = newOrderedTable[string, BsonBase]() ## Overload newBson with table definition only and stream default to ## StringStream. In most case, use `bson macro<#bson.m,untyped>`_. - for t in table: + + for t in @[first] & table.toSeq: tableres[t[0]] = t[1] BsonDocument( table: tableres, diff --git a/src/anonimongo/core/macroto_v2.nim b/src/anonimongo/core/macroto_v2.nim index 20edf78..b5e64d0 100644 --- a/src/anonimongo/core/macroto_v2.nim +++ b/src/anonimongo/core/macroto_v2.nim @@ -575,6 +575,10 @@ proc assignObj(info: NodeInfo): NimNode = else: immediateParent bodyif.add quote do: var `resvar`: `parentSym` + elif targetSym.kind == nnkPostfix: + let target = targetSym[1] + bodyif.add quote do: + var `resvar`: `target` else: bodyif.add quote do: var `resvar`: `targetSym` diff --git a/src/anonimongo/core/types.nim b/src/anonimongo/core/types.nim index 62d20c0..2023d6a 100644 --- a/src/anonimongo/core/types.nim +++ b/src/anonimongo/core/types.nim @@ -303,12 +303,12 @@ proc newMongo*[S: Multisock](muri: MongoUri, poolconn = poolconn, dnsserver = "8 template raiseInvalidSep: untyped = raise newException(MongoError, &"Whether invalid URI {uri} or missing trailing '/'") - + + type URLUri = Uri let uri = muri.string if uri.count('/') < 3: raiseInvalidSep() let uriobj = parseUri uri - type URLUri = Uri var uris: seq[URLUri] if uriobj.scheme == "": raise newException(MongoError, &"No scheme protocol provided at \"{uri}\" uri") @@ -328,7 +328,7 @@ proc newMongo*[S: Multisock](muri: MongoUri, poolconn = poolconn, dnsserver = "8 raise newException(MongoError, errmsg) for i, ans in resp.answers: let srvrec = ans as SRVRecord - uris[i] = Uri( + uris[i] = URLUri( scheme: "mongodb", hostname: srvrec.target, port: $srvrec.port, @@ -367,7 +367,7 @@ proc newMongo*[S: Multisock](muri: MongoUri, poolconn = poolconn, dnsserver = "8 if hdom.len > 1: port = hdom[1] hostname = hdom[0] - uris[i] = Uri( + uris[i] = URLUri( scheme: scheme, hostname: hostname, port: port, From 3cb2f75dc4c42aa9985a1fd5038deee514a1aa7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20M=20G=C3=B3mez?= Date: Sat, 21 Sep 2024 20:40:02 +0100 Subject: [PATCH 2/4] Update types.nim --- src/anonimongo/core/types.nim | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/anonimongo/core/types.nim b/src/anonimongo/core/types.nim index 2023d6a..9a6747b 100644 --- a/src/anonimongo/core/types.nim +++ b/src/anonimongo/core/types.nim @@ -303,7 +303,6 @@ proc newMongo*[S: Multisock](muri: MongoUri, poolconn = poolconn, dnsserver = "8 template raiseInvalidSep: untyped = raise newException(MongoError, &"Whether invalid URI {uri} or missing trailing '/'") - type URLUri = Uri let uri = muri.string if uri.count('/') < 3: @@ -600,4 +599,4 @@ proc toCursor*[S: MultiSock](b: BsonDocument): Cursor[S] = firstBatch: if "firstBatch" in b: b["firstBatch"].ofArray.map(ofEmbedded) else: @[], nextBatch: if "nextBatch" in b: b["nextBatch"].ofArray.map(ofEmbedded) else: @[], ns: b["ns"], - ) \ No newline at end of file + ) From b84cc83948fc0b1722a7cc3a163d48c87b155f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20M=20G=C3=B3mez?= Date: Sat, 21 Sep 2024 20:42:14 +0100 Subject: [PATCH 3/4] Update bson.nim --- src/anonimongo/core/bson.nim | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/anonimongo/core/bson.nim b/src/anonimongo/core/bson.nim index d3d987e..7067173 100644 --- a/src/anonimongo/core/bson.nim +++ b/src/anonimongo/core/bson.nim @@ -1015,7 +1015,6 @@ proc newBson*(first: (string, BsonBase), table: varargs[(string, BsonBase)]): Bs var tableres = newOrderedTable[string, BsonBase]() ## Overload newBson with table definition only and stream default to ## StringStream. In most case, use `bson macro<#bson.m,untyped>`_. - for t in @[first] & table.toSeq: tableres[t[0]] = t[1] BsonDocument( @@ -1082,4 +1081,4 @@ converter ofTimestamp*(b: BsonBase): TimestampInternal = bsonFetcher(b, bkTimestamp, BsonTimestamp, TimestampInternal) template bson*(): untyped = bson({}) - ## Convenience for empty bson. \ No newline at end of file + ## Convenience for empty bson. From 63b99905cfdd14fb38a84202363cf379e1119add Mon Sep 17 00:00:00 2001 From: jmgomez Date: Sat, 14 Dec 2024 15:22:55 +0000 Subject: [PATCH 4/4] adds qualifier --- src/anonimongo/core/types.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/anonimongo/core/types.nim b/src/anonimongo/core/types.nim index 9a6747b..745a26a 100644 --- a/src/anonimongo/core/types.nim +++ b/src/anonimongo/core/types.nim @@ -303,7 +303,7 @@ proc newMongo*[S: Multisock](muri: MongoUri, poolconn = poolconn, dnsserver = "8 template raiseInvalidSep: untyped = raise newException(MongoError, &"Whether invalid URI {uri} or missing trailing '/'") - type URLUri = Uri + type URLUri = uri.Uri let uri = muri.string if uri.count('/') < 3: raiseInvalidSep()