1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
;; -*-theme-d-*-
;; Copyright (C) 2020, 2021 Tommi Höynälänmaa
;; Distributed under GNU Lesser General Public License version 3,
;; see file doc/LGPL-3.
(define-interface (standard-library bytevector)
(import (standard-library core))
(define-foreign-prim-class <bytevector>
(attributes equal-by-value checked use-eq?)
(member-pred bytevector?))
(declare-simple-method make-bytevector
(<integer> <integer>) <bytevector> pure)
(declare-simple-method bytevector
((rest <integer>)) <bytevector> pure)
(declare-simple-method native-endianness () <symbol> pure)
(declare-simple-method bytevector-copy
(<bytevector>) <bytevector> pure)
(declare-simple-method bytevector-length
(<bytevector>) <integer> pure)
(declare-simple-method bytevector-fill!
(<bytevector> <integer>) <none> nonpure)
(declare-simple-method bytevector-copy!
(<bytevector> <integer> <bytevector> <integer>
<integer>)
<none> nonpure)
(declare-simple-method u8-list->bytevector
((:uniform-list <integer>)) <bytevector> pure)
(declare-simple-method bytevector->u8-list
(<bytevector>) (:uniform-list <integer>) pure)
(declare-simple-method bytevector-u8-ref
(<bytevector> <integer>) <integer> pure)
(declare-simple-method bytevector-s8-ref
(<bytevector> <integer>) <integer> pure)
(declare-simple-method bytevector-u16-ref
(<bytevector> <integer> <symbol>) <integer> pure)
(declare-simple-method bytevector-s16-ref
(<bytevector> <integer> <symbol>) <integer> pure)
(declare-simple-method bytevector-u32-ref
(<bytevector> <integer> <symbol>) <integer> pure)
(declare-simple-method bytevector-s32-ref
(<bytevector> <integer> <symbol>) <integer> pure)
(declare-simple-method bytevector-u64-ref
(<bytevector> <integer> <symbol>) <integer> pure)
(declare-simple-method bytevector-s64-ref
(<bytevector> <integer> <symbol>) <integer> pure)
(declare-simple-method bytevector-u8-set!
(<bytevector> <integer> <integer>) <none> nonpure)
(declare-simple-method bytevector-s8-set!
(<bytevector> <integer> <integer>) <none> nonpure)
(declare-simple-method bytevector-u16-set!
(<bytevector> <integer> <integer> <symbol>) <none>
nonpure)
(declare-simple-method bytevector-s16-set!
(<bytevector> <integer> <integer> <symbol>) <none>
nonpure)
(declare-simple-method bytevector-u32-set!
(<bytevector> <integer> <integer> <symbol>) <none>
nonpure)
(declare-simple-method bytevector-s32-set!
(<bytevector> <integer> <integer> <symbol>) <none>
nonpure)
(declare-simple-method bytevector-u64-set!
(<bytevector> <integer> <integer> <symbol>) <none>
nonpure)
(declare-simple-method bytevector-s64-set!
(<bytevector> <integer> <integer> <symbol>) <none>
nonpure)
(declare-simple-method bytevector-ieee-single-ref
(<bytevector> <integer> <symbol>) <real> pure)
(declare-simple-method bytevector-ieee-double-ref
(<bytevector> <integer> <symbol>) <real> pure)
(declare-simple-method bytevector-ieee-single-set!
(<bytevector> <integer> <real> <symbol>) <none>
nonpure)
(declare-simple-method bytevector-ieee-double-set!
(<bytevector> <integer> <real> <symbol>) <none>
nonpure)
(declare-simple-method string->utf8 (<string>) <bytevector> pure)
(declare-simple-method string->utf16 (<string> <symbol>) <bytevector> pure)
(declare-simple-method string->utf32 (<string> <symbol>) <bytevector> pure)
(declare-simple-method utf8->string (<bytevector>) <string> pure)
(declare-simple-method utf16->string (<bytevector> <symbol>) <string> pure)
(declare-simple-method utf32->string (<bytevector> <symbol>) <string> pure))
|