sig
  type status =
      SUCCESS
    | NO_MEMORY
    | IO_ERROR
    | FILE_NOT_FOUND
    | INVALID_VALUE
    | INVALID_CALL
    | PARSE_ERROR
  exception Error of Svg_cairo.status
  val init : unit
  type t
  external create : unit -> Svg_cairo.t = "ml_svg_cairo_create"
  external parse : Svg_cairo.t -> string -> unit = "ml_svg_cairo_parse"
  external parse_string : Svg_cairo.t -> string -> unit
    = "ml_svg_cairo_parse_buffer"
  external parse_chunk_begin : Svg_cairo.t -> unit
    = "ml_svg_cairo_parse_chunk_begin"
  external parse_chunk : Svg_cairo.t -> string -> int -> int -> unit
    = "ml_svg_cairo_parse_chunk"
  external parse_chunk_end : Svg_cairo.t -> unit
    = "ml_svg_cairo_parse_chunk_end"
  external render : Svg_cairo.t -> Cairo.t -> unit = "ml_svg_cairo_render"
  external set_viewport_dimenstion : Svg_cairo.t -> int -> int -> unit
    = "ml_svg_cairo_set_viewport_dimension"
  external get_size : Svg_cairo.t -> int * int = "ml_svg_cairo_get_size"
end