USING: kernel destructors alien.c-types alien.data strings sequences ; USING: bemenu.ffi bemenu.ffi.private ; USING: vocabs.parser ; IN: bemenu "bemenu.ffi" use-vocab TUPLE: bemenu-renderer ptr name priority ; : get-text ( -- str ) [ f bm_menu_new &bm_menu_free bm_menu_render "hi" ] with-destructors ; : bemenu-get-renderers ( -- renderers ) 0 uint32_t [ bm_get_renderers ] keep uint32_t deref void* [ dup [ bm_renderer_get_name ] [ bm_renderer_get_priorty ] bi bemenu-renderer boa ] { } map-as ;