Module EndianBytes.NativeEndian_unsafe
Contents
Instructions: Use this module in your project
In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:
Add the following to your project's
dependencies/CMakeLists.txt
:DkSDKProject_DeclareAvailable(ocplib-endian CONSTRAINT "= " FINDLIBS ocplib-endian ocplib-endian.bigstring) DkSDKProject_MakeAvailable(ocplib-endian)
Add the
Findlib::ocplib-endian
library to any desired targets insrc/*/CMakeLists.txt
:target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::ocplib-endian)
Click your IDE's
Build
button
Not using DkSDK?
FIRST, do one or all of the following:
Run:
opam install ocplib-endian.null
Edit your
dune-project
and add:(package (name YourExistingPackage) (depends ; ... existing dependenices ... (ocplib-endian (>= ))))
Then run:
dune build *.opam # if this fails, run: dune build
Edit your
<package>.opam
file and add:depends: [ # ... existing dependencies ... "ocplib-endian" {>= ""} ]
Then run:
opam install . --deps-only
FINALLY, add the ocplib-endian
library to any desired (library)
and/or (executable)
targets in your **/dune
files:
(library
(name YourLibrary)
; ... existing library options ...
(libraries
; ... existing libraries ...
ocplib-endian))
(executable
(name YourExecutable)
; ... existing executable options ...
(libraries
; ... existing libraries ...
ocplib-endian))
include
EndianBytesSig
val
get_char :
Stdlib.Bytes.t
->
``int
->
char
get_char buff i
reads 1 byte at offset i as a char
val
get_uint8 :
Stdlib.Bytes.t
->
``int
->
int
get_uint8 buff i
reads 1 byte at offset i as an unsigned int of 8
bits. i.e. It returns a value between 0 and 2^8-1
val
get_int8 :
Stdlib.Bytes.t
->
``int
->
int
get_int8 buff i
reads 1 byte at offset i as a signed int of 8 bits.
i.e. It returns a value between -2^7 and 2^7-1
val
get_uint16 :
Stdlib.Bytes.t
->
``int
->
int
get_uint16 buff i
reads 2 bytes at offset i as an unsigned int of 16
bits. i.e. It returns a value between 0 and 2^16-1
val
get_int16 :
Stdlib.Bytes.t
->
``int
->
int
get_int16 buff i
reads 2 byte at offset i as a signed int of 16 bits.
i.e. It returns a value between -2^15 and 2^15-1
val
get_int32 :
Stdlib.Bytes.t
->
``int
->
int32
get_int32 buff i
reads 4 bytes at offset i as an int32.
val
get_int64 :
Stdlib.Bytes.t
->
``int
->
int64
get_int64 buff i
reads 8 bytes at offset i as an int64.
val
get_float :
Stdlib.Bytes.t
->
``int
->
float
get_float buff i
is equivalent to
Int32.float_of_bits (get_int32 buff i)
val
get_double :
Stdlib.Bytes.t
->
``int
->
float
get_double buff i
is equivalent to
Int64.float_of_bits (get_int64 buff i)
val
set_char :
Stdlib.Bytes.t
->
``int
->
``char
->
unit
set_char buff i v
writes v
to buff
at offset i
val
set_int8 :
Stdlib.Bytes.t
->
``int
->
``int
->
unit
set_int8 buff i v
writes the least significant 8 bits of v
to buff
at offset i
val
set_int16 :
Stdlib.Bytes.t
->
``int
->
``int
->
unit
set_int16 buff i v
writes the least significant 16 bits of v
to
buff
at offset i
val
set_int32 :
Stdlib.Bytes.t
->
``int
->
``int32
->
unit
set_int32 buff i v
writes v
to buff
at offset i
val
set_int64 :
Stdlib.Bytes.t
->
``int
->
``int64
->
unit
set_int64 buff i v
writes v
to buff
at offset i
val
set_float :
Stdlib.Bytes.t
->
``int
->
``float
->
unit
set_float buff i v
is equivalent to
set_int32 buff i (Int32.bits_of_float v)
val
set_double :
Stdlib.Bytes.t
->
``int
->
``float
->
unit
set_double buff i v
is equivalent to
set_int64 buff i (Int64.bits_of_float v)