import ../wain/[keyboard,mouse]
type
Bind[T] = object
case hasBind*: bool
of true: value: T
else: nil
ActionBindObj = object of RootObj
bind0*: Bind[T]
action*: proc()
#gamepad0
ActionBind* = ref object of ActionBindObj
proc the*[T](value: T): Bind[T] = Bind[T](hasBind: true, value: value)
proc setBind*[T]( b: Bind[T]
, value: T
) =
if value != nil: b.value = value
else:
b.value = nil
b.hasBind = false
proc emptyBind*[T]: Bind[T] = Bind[T](hasBind: false)