;; simple aliasing "implementation" of r7rs bytevectors ;; just map everything to vector-8b / string (define bytevector? string?) (define (make-bytevector k #!optional byte) (if (default-object? byte) (make-vector-8b k) (make-vector-8b k byte))) (define (bytevector . rest) (list->string (map integer->char rest))) (define bytevector-length vector-8b-length) (define bytevector-u8-ref vector-8b-ref) (define bytevector-u8-set! vector-8b-set!) (define (bytevector-copy bytevector #!optional start end) (string-copy bytevector start end)) (define (bytevector-copy! to at from #!optional start end) (string-copy! to at from start end)) (define bytevector-append string-append) ;; if it is a utf8 "bytevector", it is already a string (define utf8->string identity-procedure) ;; if it is a string that is supposed to contain utf8, it is already a "bytevector" (define string->utf8 identity-procedure)