Skip to content

Instantly share code, notes, and snippets.

@donlindsay
Last active December 23, 2015 21:19
Show Gist options
  • Save donlindsay/6695245 to your computer and use it in GitHub Desktop.
Save donlindsay/6695245 to your computer and use it in GitHub Desktop.
defstruct with multiple constructors
(defstruct app-skel
(:constructor make-gtk-app-skel
(&key (name 'gtk)
(imports 'gtk)
(headerbar (headerbar-p))
(popover (popover-p))
(grid (grid-p))
(webkit (webkit-p))
(tabs (tabs-p))
(label 'true)
(image 'true)
(style 'style)
))
(:constructor make-webkit-app-skel
(&key (name 'webkit)
(imports ('gtk 'webkit))
(headerbar 'true)
(popover 'false)
(grid 'true)
(webkit 'true)
(tabs (tabs-p))
(label 'default)
(image 'default)
(style 'default)
))
(:constructor make-library-app-skel
(&key (name 'library)
(imports 'gtk)
(headerbar 'false)
(popover 'false)
(grid 'false)
(webkit 'false)
(tabs 'false)
(label 'false)
(image 'false)
(style 'false)
))
(:constructor new-cinn-app-skel
(&key (name 'cinn)
(imports ('gtk 'cinn))
(headerbar 'true)
(popover 'false)
(grid 'true)
(webkit 'false)
(tabs (tabs-p))
(label 'true)
(image 'true)
(style 'default)
))
(:constructor new-unity-app-skel
(&key (name 'unity)
(imports ('gtk 'unity))
(headerbar 'true)
(popover (popover-p))
(grid 'true)
(webkit 'false)
(tabs (tabs-p))
(label 'true)
(image 'true)
(style 'default)
)))
Debugger:
Debugger entered--Lisp error: (error "Duplicate slots named :constructor in app-skel")
signal(error ("Duplicate slots named :constructor in app-skel"))
error("Duplicate slots named %s in %s" :constructor app-skel)
#[(struct &rest descs) ":\203\n
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment