interface ToFFI : Type -> Type -> TypeInterface supporting the use of a value as an
argument in a foreign function call.
Implementations for primitives and external type should be
done using `believe_me`, as they are alredy in the correct
representation. Idris2 types should be converted to primitives
or external constants first.
toFFI : a -> ffiReprToFFI ByteString ByteStringToFFI JSInt64 JSInt64ToFFI JSBits64 JSBits64ToFFI Any AnyPtrToFFI ArrayBuffer ArrayBufferToFFI UInt8ClampedArray UInt8ClampedArrayToFFI UInt8Array UInt8ArrayToFFI UInt16Array UInt16ArrayToFFI UInt32Array UInt32ArrayToFFI Int8Array Int8ArrayToFFI Int16Array Int16ArrayToFFI Int32Array Int32ArrayToFFI Float32Array Float32ArrayToFFI Float64Array Float64ArrayToFFI DataView DataViewToFFI (Array a) (Array a)ToFFI a b => ToFFI (List a) (IO (Array b))ToFFI Bool BooleanToFFI Object ObjectToFFI (Promise a) (Promise a)ToFFI (Record a b) (Record a b)ToFFI a b => ToFFI (Maybe a) (Nullable b)ToFFI Undefined UndefinedToFFI a b => ToFFI (Optional a) (UndefOr b)ToFFI AnyPtr AnyPtrToFFI Bits8 Bits8ToFFI Bits16 Bits16ToFFI Bits32 Bits32ToFFI Bits64 Bits64ToFFI Int8 Int8ToFFI Int16 Int16ToFFI Int32 Int32ToFFI Int64 Int64ToFFI Int IntToFFI Char CharToFFI Integer IntegerToFFI Double DoubleToFFI String StringToFFI WindowProxy WindowProxyNPP ToFFI [a, b] [m, n] => ToFFI (HSum [a, b]) (Union2 m n)ToFFI (Union2 a b) (Union2 a b)NPP ToFFI [a, b, c] [m, n, o] => ToFFI (HSum [a, b, c]) (Union3 m n o)ToFFI (Union3 a b c) (Union3 a b c)NPP ToFFI [a, b, c, d] [m, n, o, p] => ToFFI (HSum [a, b, c, d]) (Union4 m n o p)ToFFI (Union4 a b c d) (Union4 a b c d)NPP ToFFI [a, b, c, d, e] [m, n, o, p, q] => ToFFI (HSum [a, b, c, d, e]) (Union5 m n o p q)ToFFI (Union5 a b c d e) (Union5 a b c d e)NPP ToFFI [a, b, c, d, e, f] [m, n, o, p, q, r] => ToFFI (HSum [a, b, c, d, e, f]) (Union6 m n o p q r)ToFFI (Union6 a b c d e f) (Union6 a b c d e f)NPP ToFFI [a, b, c, d, e, f, g] [m, n, o, p, q, r, s] => ToFFI (HSum [a, b, c, d, e, f, g]) (Union7 m n o p q r s)ToFFI (Union7 a b c d e f g) (Union7 a b c d e f g)NPP ToFFI [a, b, c, d, e, f, g, h] [m, n, o, p, q, r, s, t] => ToFFI (HSum [a, b, c, d, e, f, g, h]) (Union8 m n o p q r s t)ToFFI (Union8 a b c d e f g h) (Union8 a b c d e f g h)NPP ToFFI [a, b, c, d, e, f, g, h, i] [m, n, o, p, q, r, s, t, u] => ToFFI (HSum [a, b, c, d, e, f, g, h, i]) (Union9 m n o p q r s t u)ToFFI (Union9 a b c d e f g h i) (Union9 a b c d e f g h i)NPP ToFFI [a, b, c, d, e, f, g, h, i, j] [m, n, o, p, q, r, s, t, u, v] => ToFFI (HSum [a, b, c, d, e, f, g, h, i, j]) (Union10 m n o p q r s t u v)ToFFI (Union10 a b c d e f g h i j) (Union10 a b c d e f g h i j)NPP ToFFI [a, b, c, d, e, f, g, h, i, j, k] [m, n, o, p, q, r, s, t, u, v, w] => ToFFI (HSum [a, b, c, d, e, f, g, h, i, j, k]) (Union11 m n o p q r s t u v w)ToFFI (Union11 a b c d e f g h i j k) (Union11 a b c d e f g h i j k)NPP ToFFI [a, b, c, d, e, f, g, h, i, j, k, l] [m, n, o, p, q, r, s, t, u, v, w, x] => ToFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l]) (Union12 m n o p q r s t u v w x)ToFFI (Union12 a b c d e f g h i j k l) (Union12 a b c d e f g h i j k l)NPP ToFFI [a, b, c, d, e, f, g, h, i, j, k, l, a1] [m, n, o, p, q, r, s, t, u, v, w, x, y] => ToFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l, a1]) (Union13 m n o p q r s t u v w x y)ToFFI (Union13 a b c d e f g h i j k l m) (Union13 a b c d e f g h i j k l m)NPP ToFFI [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2] [m, n, o, p, q, r, s, t, u, v, w, x, y, z] => ToFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2]) (Union14 m n o p q r s t u v w x y z)ToFFI (Union14 a b c d e f g h i j k l m n) (Union14 a b c d e f g h i j k l m n)NPP ToFFI [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2, a3] [m, n, o, p, q, r, s, t, u, v, w, x, y, z, z1] => ToFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2, a3]) (Union15 m n o p q r s t u v w x y z z1)ToFFI (Union15 a b c d e f g h i j k l m n o) (Union15 a b c d e f g h i j k l m n o)NPP ToFFI [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2, a3, a4] [m, n, o, p, q, r, s, t, u, v, w, x, y, z, z1, z2] => ToFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2, a3, a4]) (Union16 m n o p q r s t u v w x y z z1 z2)ToFFI (Union16 a b c d e f g h i j k l m n o p) (Union16 a b c d e f g h i j k l m n o p)toFFI : ToFFI a ffiRepr => a -> ffiReprinterface FromFFI : Type -> Type -> TypeInterface supporting the use of a value as a
return type in a foreign function call.
fromFFI : ffiRepr -> Maybe aFromFFI ByteString ByteStringFromFFI JSInt64 JSInt64FromFFI JSBits64 JSBits64FromFFI Any AnyPtrFromFFI ArrayBuffer ArrayBufferFromFFI UInt8ClampedArray UInt8ClampedArrayFromFFI UInt8Array UInt8ArrayFromFFI UInt16Array UInt16ArrayFromFFI UInt32Array UInt32ArrayFromFFI Int8Array Int8ArrayFromFFI Int16Array Int16ArrayFromFFI Int32Array Int32ArrayFromFFI Float32Array Float32ArrayFromFFI Float64Array Float64ArrayFromFFI DataView DataViewFromFFI (Array a) (Array a)FromFFI Bool BooleanFromFFI Object ObjectFromFFI (Promise a) (Promise a)FromFFI (Record a b) (Record a b)FromFFI a b => FromFFI (Maybe a) (Nullable b)FromFFI Undefined UndefinedFromFFI a b => FromFFI (Optional a) (UndefOr b)FromFFI AnyPtr AnyPtrFromFFI Bits8 Bits8FromFFI Bits16 Bits16FromFFI Bits32 Bits32FromFFI Bits64 Bits64FromFFI Int8 Int8FromFFI Int16 Int16FromFFI Int32 Int32FromFFI Int64 Int64FromFFI Char CharFromFFI Int IntFromFFI Integer IntegerFromFFI Double DoubleFromFFI String StringFromFFI WindowProxy WindowProxyNPP FromFFI [a, b] [m, n] => All SafeCast [m, n] => FromFFI (HSum [a, b]) (Union2 m n)FromFFI (Union2 a b) (Union2 a b)NPP FromFFI [a, b, c] [m, n, o] => All SafeCast [m, n, o] => FromFFI (HSum [a, b, c]) (Union3 m n o)FromFFI (Union3 a b c) (Union3 a b c)NPP FromFFI [a, b, c, d] [m, n, o, p] => All SafeCast [m, n, o, p] => FromFFI (HSum [a, b, c, d]) (Union4 m n o p)FromFFI (Union4 a b c d) (Union4 a b c d)NPP FromFFI [a, b, c, d, e] [m, n, o, p, r] => All SafeCast [m, n, o, p, r] => FromFFI (HSum [a, b, c, d, e]) (Union5 m n o p r)FromFFI (Union5 a b c d e) (Union5 a b c d e)NPP FromFFI [a, b, c, d, e, f] [m, n, o, p, r, s] => All SafeCast [m, n, o, p, r, s] => FromFFI (HSum [a, b, c, d, e, f]) (Union6 m n o p r s)FromFFI (Union6 a b c d e f) (Union6 a b c d e f)NPP FromFFI [a, b, c, d, e, f, g] [m, n, o, p, r, s, t] => All SafeCast [m, n, o, p, r, s, t] => FromFFI (HSum [a, b, c, d, e, f, g]) (Union7 m n o p r s t)FromFFI (Union7 a b c d e f g) (Union7 a b c d e f g)NPP FromFFI [a, b, c, d, e, f, g, h] [m, n, o, p, r, s, t, u] => All SafeCast [m, n, o, p, r, s, t, u] => FromFFI (HSum [a, b, c, d, e, f, g, h]) (Union8 m n o p r s t u)FromFFI (Union8 a b c d e f g h) (Union8 a b c d e f g h)NPP FromFFI [a, b, c, d, e, f, g, h, i] [m, n, o, p, r, s, t, u, v] => All SafeCast [m, n, o, p, r, s, t, u, v] => FromFFI (HSum [a, b, c, d, e, f, g, h, i]) (Union9 m n o p r s t u v)FromFFI (Union9 a b c d e f g h i) (Union9 a b c d e f g h i)NPP FromFFI [a, b, c, d, e, f, g, h, i, j] [m, n, o, p, r, s, t, u, v, w] => All SafeCast [m, n, o, p, r, s, t, u, v, w] => FromFFI (HSum [a, b, c, d, e, f, g, h, i, j]) (Union10 m n o p r s t u v w)FromFFI (Union10 a b c d e f g h i j) (Union10 a b c d e f g h i j)NPP FromFFI [a, b, c, d, e, f, g, h, i, j, k] [m, n, o, p, q, r, s, t, u, v, w] => All SafeCast [m, n, o, p, q, r, s, t, u, v, w] => FromFFI (HSum [a, b, c, d, e, f, g, h, i, j, k]) (Union11 m n o p q r s t u v w)FromFFI (Union11 a b c d e f g h i j k) (Union11 a b c d e f g h i j k)NPP FromFFI [a, b, c, d, e, f, g, h, i, j, k, l] [m, n, o, p, q, r, s, t, u, v, w, x] => All SafeCast [m, n, o, p, q, r, s, t, u, v, w, x] => FromFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l]) (Union12 m n o p q r s t u v w x)FromFFI (Union12 a b c d e f g h i j k l) (Union12 a b c d e f g h i j k l)NPP FromFFI [a, b, c, d, e, f, g, h, i, j, k, l, a1] [m, n, o, p, q, r, s, t, u, v, w, x, y] => All SafeCast [m, n, o, p, q, r, s, t, u, v, w, x, y] => FromFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l, a1]) (Union13 m n o p q r s t u v w x y)FromFFI (Union13 a b c d e f g h i j k l m) (Union13 a b c d e f g h i j k l m)NPP FromFFI [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2] [m, n, o, p, q, r, s, t, u, v, w, x, y, z] => All SafeCast [m, n, o, p, q, r, s, t, u, v, w, x, y, z] => FromFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2]) (Union14 m n o p q r s t u v w x y z)FromFFI (Union14 a b c d e f g h i j k l m n) (Union14 a b c d e f g h i j k l m n)NPP FromFFI [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2, a3] [m, n, o, p, q, r, s, t, u, v, w, x, y, z, z1] => All SafeCast [m, n, o, p, q, r, s, t, u, v, w, x, y, z, z1] => FromFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2, a3]) (Union15 m n o p q r s t u v w x y z z1)FromFFI (Union15 a b c d e f g h i j k l m n o) (Union15 a b c d e f g h i j k l m n o)NPP FromFFI [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2, a3, a4] [m, n, o, p, q, r, s, t, u, v, w, x, y, z, z1, z2] => All SafeCast [m, n, o, p, q, r, s, t, u, v, w, x, y, z, z1, z2] => FromFFI (HSum [a, b, c, d, e, f, g, h, i, j, k, l, a1, a2, a3, a4]) (Union16 m n o p q r s t u v w x y z z1 z2)FromFFI (Union16 a b c d e f g h i j k l m n o p) (Union16 a b c d e f g h i j k l m n o p)fromFFI : FromFFI a ffiRepr => ffiRepr -> Maybe atryFromFFI : FromFFI a ffiRepr => Lazy String -> ffiRepr -> JSIO atryJS : FromFFI a ffiRepr => Lazy String -> PrimIO ffiRepr -> JSIO a