package ctypes

  1. Overview
  2. No Docs
Combinators for binding to C libraries without writing any C

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.22.0.tar.gz
sha256=aa797c5d6bcaee8883aece2d1d9a524fc1f63c78c1538b0fe69969c0e989419f
md5=8a301a3e3b79156448a6659859ad506c

doc/src/ctypes/ctypes_bigarray_stubs.ml.html

Source file ctypes_bigarray_stubs.ml

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
(*
 * Copyright (c) 2013 Jeremy Yallop.
 *
 * This file is distributed under the terms of the MIT License.
 * See the file LICENSE for details.
 *)

type _ kind =
    Kind_float32 : float kind
  | Kind_float64 : float kind
  | Kind_int8_signed : int kind
  | Kind_int8_unsigned : int kind
  | Kind_int16_signed : int kind
  | Kind_int16_unsigned : int kind
  | Kind_int32 : int32 kind
  | Kind_int64 : int64 kind
  | Kind_int : int kind
  | Kind_nativeint : nativeint kind
  | Kind_complex32 : Complex.t kind
  | Kind_complex64 : Complex.t kind
  | Kind_char : char kind

let kind : type a b. (a, b) Bigarray_compat.kind -> a kind = function
  | Bigarray_compat.Float32 -> Kind_float32
  | Bigarray_compat.Float64 -> Kind_float64
  | Bigarray_compat.Int8_signed -> Kind_int8_signed
  | Bigarray_compat.Int8_unsigned -> Kind_int8_unsigned
  | Bigarray_compat.Int16_signed -> Kind_int16_signed
  | Bigarray_compat.Int16_unsigned -> Kind_int16_unsigned
  | Bigarray_compat.Int32 -> Kind_int32
  | Bigarray_compat.Int64 -> Kind_int64
  | Bigarray_compat.Int -> Kind_int
  | Bigarray_compat.Nativeint -> Kind_nativeint
  | Bigarray_compat.Complex32 -> Kind_complex32
  | Bigarray_compat.Complex64 -> Kind_complex64
  | Bigarray_compat.Char -> Kind_char
  | _ -> failwith "Unsupported bigarray kind" [@@ocaml.warning "-11"]

external address : 'b -> Ctypes_ptr.voidp
  = "ctypes_bigarray_address"

external view : 'a kind -> dims:int array -> _ Ctypes_ptr.Fat.t ->
  'l Bigarray_compat.layout -> ('a, 'b, 'l) Bigarray_compat.Genarray.t
  = "ctypes_bigarray_view"

external view1 : 'a kind -> dims:int array -> _ Ctypes_ptr.Fat.t ->
  'l Bigarray_compat.layout -> ('a, 'b, 'l) Bigarray_compat.Array1.t
  = "ctypes_bigarray_view"

external view2 : 'a kind -> dims:int array -> _ Ctypes_ptr.Fat.t ->
  'l Bigarray_compat.layout -> ('a, 'b, 'l) Bigarray_compat.Array2.t
  = "ctypes_bigarray_view"

external view3 : 'a kind -> dims:int array -> _ Ctypes_ptr.Fat.t ->
  'l Bigarray_compat.layout -> ('a, 'b, 'l) Bigarray_compat.Array3.t
  = "ctypes_bigarray_view"
OCaml

Innovation. Community. Security.