aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2024-12-29 17:41:04 -0500
committerGravatar Peter McGoron 2024-12-29 17:41:04 -0500
commitf761933a5b480d51ae009c3d6b6bfb83bd440e08 (patch)
treec3beee4d924328ffd5c3e70b84c0387ceca88d3b
parentgeneralize generated files (diff)
define-record-type/destructor
-rw-r--r--mcgoron.cond-thunk.values.scm16
-rw-r--r--mcgoron.cond-thunk.values.sld1
2 files changed, 17 insertions, 0 deletions
diff --git a/mcgoron.cond-thunk.values.scm b/mcgoron.cond-thunk.values.scm
index ca4469a..8330ba1 100644
--- a/mcgoron.cond-thunk.values.scm
+++ b/mcgoron.cond-thunk.values.scm
@@ -74,3 +74,19 @@
(when-ct (null? rest)
(apply values whole-list)))))
+(define-syntax define-record-type/destructor
+ (syntax-rules ()
+ ((_ type-name cstr predicate? destructor=>
+ (arg-name accessor . rest)
+ ...)
+ (begin
+ (define-record-type type-name
+ str
+ predicate?
+ (arg-name accessor . rest)
+ ...)
+ (define (destructor=> record)
+ (cond-values
+ (after ((when (predicate? record)))
+ (values (accessor record) ...))))))))
+
diff --git a/mcgoron.cond-thunk.values.sld b/mcgoron.cond-thunk.values.sld
index 55f5b22..5597eea 100644
--- a/mcgoron.cond-thunk.values.sld
+++ b/mcgoron.cond-thunk.values.sld
@@ -18,6 +18,7 @@
(import (scheme base) (mcgoron cond-thunk))
(export after apply-after
cond-values
+ define-record-type/destructor
pair=>
length-at-least=> length=>)
(cond-expand
767cc7d47b56d4f539ff7dc5019&follow=1'>Fix raw1394_start_iso_write() which uses wrong variable.Gravatar aeb 1-1/+1 2000-09-10Work around compiler warnings for int/ptr casts.Gravatar aeb 6-10/+20 2000-09-10Added control files for Debian packages.Gravatar aeb 6-8/+106 2000-09-01Added missing prototypes for iso send functions.Gravatar aeb 1-0/+7 2000-08-08Added raw1394_get_irm_id().Gravatar aeb 7-7/+39 2000-08-06Added support for isochronous sending.Gravatar aeb 3-0/+35 2000-07-05Added raw1394_reset_bus() call.Gravatar aeb 4-0/+23 2000-06-22- Set library version info in configure.in, use in src/Makefile.am.Gravatar aeb 4-2/+16 2000-06-15Update libtool version number.Gravatar aeb 2-2/+2 2000-06-14Added copyright headers.Gravatar aeb 6-0/+54 2000-06-11Added explicit AC_PROG_INSTALL call.Gravatar aeb 1-0/+1 2000-06-09Fix size of error field.Gravatar aeb 1-2/+2 2000-06-02Modified support for 32/64 bit environments, control struct fields have fixed...Gravatar aeb 7-43/+28 2000-05-28Added support for environments with 64 bit kernel and 32 bit userland.Gravatar aeb 8-7/+45 2000-04-27Fixed missing setting of ext code in raw1394_start_lock()Gravatar aeb 1-0/+1 2000-04-15Fixed lock transaction to actually return response value.Gravatar aeb 3-5/+11 2000-04-12Add userdata functions as news.Gravatar aeb 1-0/+4 2000-04-05Add userdata functions.Gravatar aeb 3-0/+18 2000-03-18Bump version number to 0.6.Gravatar aeb 3-5/+6 2000-03-18Mention byte order change.Gravatar aeb 1-0/+2 2000-03-18Mention SourceForge home.Gravatar aeb 1-1/+5