Mercurial > core / lisp/ffi/rocksdb/prim.lisp
changeset 698: |
96958d3eb5b0 |
parent: |
6fc04c4d465c
|
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Fri, 04 Oct 2024 22:04:59 -0400 |
permissions: |
-rw-r--r-- |
description: |
fixes |
1 ;;; rocksdb/prim.lisp --- RocksDB Primitive FFI Macros 9 (defmacro def-with-errptr (name result-type &rest args) 11 (define-alien-routine ,name ,result-type ,@args (errptr rocksdb-errptr)) 12 (export '(,name) :rocksdb))) 14 (defmacro define-opt (name) 15 (let ((c-fn (symbolicate name '-create)) 16 (d-fn (symbolicate name '-destroy)) 17 (typ (symbolicate name '-t))) 19 (define-alien-type ,name (struct ,typ)) 20 (define-alien-routine ,c-fn (* ,name)) 21 (define-alien-routine ,d-fn void 23 (export '(,c-fn ,d-fn ,name) :rocksdb)))) 25 (defmacro define-opt-accessor (opt name &optional val) 26 (let* ((g-fn (symbolicate opt '-get- name)) 27 (s-fn (symbolicate opt '-set- name))) 30 (define-alien-routine ,s-fn void 33 (define-alien-routine ,g-fn ,val 35 (export '(,g-fn ,s-fn) :rocksdb)) 37 (define-alien-routine ,s-fn void 40 (define-alien-routine ,g-fn boolean 42 (export '(,g-fn ,s-fn) :rocksdb))))) 44 (defmacro export-opt-accessors (opt &rest names) 47 collect `(export (list 48 ',(symbolicate opt '-get- n) 49 ',(symbolicate opt '-set- n)) :rocksdb))))