Generate preference type
This commit is contained in:
parent
f1d566fff6
commit
8208676e6e
|
@ -105,3 +105,16 @@ macro genUpdatePrefs*(): untyped =
|
|||
result.add quote do:
|
||||
cache(prefs)
|
||||
|
||||
macro genPrefsType*(): untyped =
|
||||
let name = nnkPostfix.newTree(ident("*"), ident("Prefs"))
|
||||
result = quote do:
|
||||
type `name` = object
|
||||
id* {.pk, ro.}: int
|
||||
|
||||
for pref in allPrefs():
|
||||
result[0][2][2].add nnkIdentDefs.newTree(
|
||||
nnkPostfix.newTree(ident("*"), ident(pref.name)),
|
||||
(case pref.kind
|
||||
of checkbox: ident("bool")
|
||||
of input, select: ident("string")),
|
||||
newEmptyNode())
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import times, sequtils, options
|
||||
import norm/sqlite
|
||||
|
||||
import prefs_impl
|
||||
|
||||
export sqlite, options
|
||||
|
||||
type
|
||||
|
@ -50,19 +52,7 @@ dbTypes:
|
|||
formatIt: dbValue($it)
|
||||
.}: VideoType
|
||||
|
||||
Prefs* = object
|
||||
hlsPlayback*: bool
|
||||
mp4Playback*: bool
|
||||
proxyVideos*: bool
|
||||
muteVideos*: bool
|
||||
autoplayGifs*: bool
|
||||
hideTweetStats*: bool
|
||||
hideBanner*: bool
|
||||
stickyProfile*: bool
|
||||
replaceYouTube*: string
|
||||
replaceTwitter*: string
|
||||
|
||||
|
||||
genPrefsType()
|
||||
dbFromTypes("cache.db", "", "", "", [Profile, Video])
|
||||
|
||||
type
|
||||
|
|
Loading…
Reference in New Issue