Pure Ocaml implementation of the D-Bus protocol
Library obus.internals
Module OBus_string

There are a lot of restrictions for strings used in D-Bus. OBus only verifies strings when a message is sent or received

type error = {
typ : string;(*

Type of string ("string", "bus name", "error name", "path", ...)

str : string;(*

The string which fail to validate

ofs : int;(*

is the position in bytes where the validation failed

msg : string;(*

explains why the string failed to validate

val error_message : error -> string

error_message error returns a human-readable error message

Error projections
val typ : error -> string
val str : error -> string
val ofs : error -> int
val msg : error -> string
type validator = string -> error option

Tests if a string is correct.

  • if it is, returns None
  • if not, returns Some(ofs, msg)
exception Invalid_string of error
val assert_validate : validator -> string -> unit

Raises Invalid_string if the given string failed to validate

Common strings
type t = string

Type for common strings, restrictions are:

  • a string must be encoded in valid UTF-8
  • a string must not contains the null byte
val validate : validator

Validation function for common strings