Skip to content

Instantly share code, notes, and snippets.

@takikawa
Created February 10, 2014 14:53
Show Gist options
  • Save takikawa/8917303 to your computer and use it in GitHub Desktop.
Save takikawa/8917303 to your computer and use it in GitHub Desktop.
Start of typed/ffi/vector
#lang s-exp typed-racket/base-env/extra-env-lang
(begin (require (for-syntax typed-racket/rep/type-rep)
ffi/vector))
[make-u8vector (-> -Nat (make-Opaque #'u8vector?))]
[u8vector (->* '() -Byte (make-Opaque #'u8vector?))]
[u8vector? (make-pred-ty (make-Opaque #'u8vector?))]
[u8vector-length (-> (make-Opaque #'u8vector?) -Nat)]
[u8vector-ref (-> (make-Opaque #'u8vector?) -Int -Byte)]
[u8vector-set! (-> (make-Opaque #'u8vector?) -Int -Byte -Void)]
[list->u8vector (-> (-lst -Byte) (make-Opaque #'u8vector?))]
[u8vector->list (-> (make-Opaque #'u8vector?) (-lst -Byte))]
;[u8vector->cpointer (-> (make-Opaque #'u8vector?) cpointer?)]
;[make-s8vector (-> -Nat (make-Opaque #'s8vector?))]
;[s8vector (->* '() -Byte (make-Opaque #'s8vector?))]
;[s8vector? (make-pred-ty (make-Opaque #'s8vector?))]
;[s8vector-length (-> (make-Opaque #'s8vector?) -Nat)]
;[s8vector-ref (-> (make-Opaque #'s8vector?) -Int -Byte)]
;[s8vector-set! (-> (make-Opaque #'s8vector?) -Int -Byte -Void)]
;[list->s8vector (-> (-lst -Byte) (make-Opaque #'s8vector?))]
;[s8vector->list (-> (make-Opaque #'s8vector?) (-lst -Byte))]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment