bytevectors.scm 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. ;;; Bytevectors
  2. ;;; Copyright (C) 2024 David Thompson <dave@spritely.institute>
  3. ;;;
  4. ;;; Licensed under the Apache License, Version 2.0 (the "License");
  5. ;;; you may not use this file except in compliance with the License.
  6. ;;; You may obtain a copy of the License at
  7. ;;;
  8. ;;; http://www.apache.org/licenses/LICENSE-2.0
  9. ;;;
  10. ;;; Unless required by applicable law or agreed to in writing, software
  11. ;;; distributed under the License is distributed on an "AS IS" BASIS,
  12. ;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. ;;; See the License for the specific language governing permissions and
  14. ;;; limitations under the License.
  15. ;;; Commentary:
  16. ;;;
  17. ;;; R6RS bytevectors.
  18. ;;;
  19. ;;; Code:
  20. (define-module (rnrs bytevectors)
  21. #:use-module (hoot bytevectors)
  22. ;; Missing bindings:
  23. ;; native-endianness
  24. ;; bytevector=?
  25. ;; bytevector-fill!
  26. ;; bytevector-copy!
  27. ;; bytevector-copy
  28. ;; uniform-array->bytevector
  29. ;; u8-list->bytevector
  30. ;; bytevector-uint-ref
  31. ;; bytevector-uint-set!
  32. ;; bytevector-sint-ref
  33. ;; bytevector-sint-set!
  34. ;; bytevector->sint-list
  35. ;; bytevector->uint-list
  36. ;; uint-list->bytevector
  37. ;; sint-list->bytevector
  38. ;; bytevector-u16-ref
  39. ;; bytevector-u16-set!
  40. ;; bytevector-s16-ref
  41. ;; bytevector-s16-set!
  42. ;; bytevector-u32-ref
  43. ;; bytevector-u32-set!
  44. ;; bytevector-s32-ref
  45. ;; bytevector-s32-set!
  46. ;; bytevector-u64-ref
  47. ;; bytevector-u64-set!
  48. ;; bytevector-s64-ref
  49. ;; bytevector-s64-set!
  50. ;; bytevector-ieee-single-ref
  51. ;; bytevector-ieee-single-set!
  52. ;; bytevector-ieee-double-ref
  53. ;; bytevector-ieee-double-set!
  54. ;; string->utf8
  55. ;; string->utf16
  56. ;; string->utf32
  57. ;; utf8->string
  58. ;; utf16->string
  59. ;; utf32->string
  60. #:re-export (make-bytevector
  61. bytevector?
  62. bytevector-length
  63. bytevector-u8-ref
  64. bytevector-u8-set!
  65. bytevector-s8-ref
  66. bytevector-s8-set!
  67. bytevector-u16-native-ref
  68. bytevector-u16-native-set!
  69. bytevector-s16-native-ref
  70. bytevector-s16-native-set!
  71. bytevector-u32-native-ref
  72. bytevector-u32-native-set!
  73. bytevector-s32-native-ref
  74. bytevector-s32-native-set!
  75. bytevector-u64-native-ref
  76. bytevector-u64-native-set!
  77. bytevector-s64-native-ref
  78. bytevector-s64-native-set!
  79. bytevector-ieee-single-native-ref
  80. bytevector-ieee-single-native-set!
  81. bytevector-ieee-double-native-ref
  82. bytevector-ieee-double-native-set!
  83. bytevector-copy
  84. bytevector-copy!))