Size: a a a

2021 June 01

G

Gabben in ru.nim.talks
у меня этот case просто почти один в один переносится
источник

f

for(int c; (c = getc... in ru.nim.talks
Альтернатива это наследнование?
источник

VB

Vladimir Berezenko in ru.nim.talks
У меня поддерживается наследование, так что без проблем можно сделать.
источник

f

for(int c; (c = getc... in ru.nim.talks
А как вы определяете какой подтипы был сериализован? И как происходит потом десериализация (т.е. как выбирается какого типа конкретно значение мне нужно создать (и вызвать у него метод load наверное))?
источник

f

for(int c; (c = getc... in ru.nim.talks
Потому что с юнионами это просто - сохраняем kind первым, в обратную сторону просто загружаем его первым и вперед в case
источник

VB

Vladimir Berezenko in ru.nim.talks
автодесериализации нет, но есть уникальный id, по которому с легкостью можно сделать десериализацию автоматом. суть изврат, но работающий годами.
источник

VB

Vladimir Berezenko in ru.nim.talks
технически да, то-же самое, просто несколько сложнее
источник

G

Gabben in ru.nim.talks
не понимаю как это должно работать для стороннего API
источник

VB

Vladimir Berezenko in ru.nim.talks
а в чём проблема? пакет чётко идентифицируется по ID и не свой не загрузится - свалится с ошибкой.
источник

G

Gabben in ru.nim.talks
в том то и дело, что я хочу десереализовать не свой, у которого нет ID
источник

f

for(int c; (c = getc... in ru.nim.talks
type
   A = ref object of RootObj
     typeId: int # ???

   B = ref object of A
   C = ref object of A

var data: @[A(), B(), C()]

proc deser(stream: Stream): A =
 let id = stream.loadTypeId()
 result = # Создать наследованный объект, учитывая то что пользователь также мог сделать свой `typeId`.
          # Можно сделать через `id -> newObjCallback(): A` callback table?
источник

G

Gabben in ru.nim.talks
я вот увидел в серде такую фишку https://serde.rs/enum-representations.html#untagged
и теперь мне её не хватает в сериализаторах в других языках
источник

VB

Vladimir Berezenko in ru.nim.talks
не совсем,
packet A:
 a: Optional[int]
packet B of A:
 b: string
pa = A.init()
pb = B.init(b: "test")
var js = pb.dump()
B.load(js)
источник

g

gavr in ru.nim.talks
источник

G

Gabben in ru.nim.talks
This Month with Nim: concepts are still broken
источник

g

gavr in ru.nim.talks
мях, какие концепты, все еще нет ни одной нормальной IDE
источник

g

gavr in ru.nim.talks
точнее нимсаджест все еще саккс, 1 vsc плагин заброшен, второй сжирает всю оперативку и уводит комп в оом, и не сильно отличатеся по функциональности от первого (saem)
источник

g

gavr in ru.nim.talks
надо шоб как у beaf иде шла в комплекте )
источник
2021 June 04

g

gavr in ru.nim.talks
@inv2004 мне тут подвернулась машина хорошая, но она на винде, батник в бенчах хорошо работает, никакой ручной подкрутки не нужно?
источник

g

gavr in ru.nim.talks
там шоб компиль С стоял например
источник