added Buffer.sub & Buffer.nth
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6203 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02master
parent
4041c97364
commit
4281c5216b
|
@ -27,6 +27,22 @@ let create n =
|
||||||
|
|
||||||
let contents b = String.sub b.buffer 0 b.position
|
let contents b = String.sub b.buffer 0 b.position
|
||||||
|
|
||||||
|
let sub b ofs len =
|
||||||
|
if ofs < 0 || len < 0 || ofs > b.position - len
|
||||||
|
then invalid_arg "Buffer.sub"
|
||||||
|
else begin
|
||||||
|
let r = String.create len in
|
||||||
|
String.blit b.buffer ofs r 0 len;
|
||||||
|
r
|
||||||
|
end
|
||||||
|
;;
|
||||||
|
|
||||||
|
let nth b ofs =
|
||||||
|
if ofs < 0 || ofs >= b.position then
|
||||||
|
invalid_arg "Buffer.nth"
|
||||||
|
else String.get b.buffer ofs
|
||||||
|
;;
|
||||||
|
|
||||||
let length b = b.position
|
let length b = b.position
|
||||||
|
|
||||||
let clear b = b.position <- 0
|
let clear b = b.position <- 0
|
||||||
|
|
|
@ -40,6 +40,16 @@ val contents : t -> string
|
||||||
(** Return a copy of the current contents of the buffer.
|
(** Return a copy of the current contents of the buffer.
|
||||||
The buffer itself is unchanged. *)
|
The buffer itself is unchanged. *)
|
||||||
|
|
||||||
|
val sub : t -> int -> int -> string
|
||||||
|
(** [Buffer.sub b off len] returns (a copy of) the substring of the
|
||||||
|
current contents of the buffer [b] starting at offset [off] of length
|
||||||
|
[len] bytes. May raise {!Invalid_arg} if out of bounds request. The
|
||||||
|
buffer itself is unaffected. *)
|
||||||
|
|
||||||
|
val nth : t -> int -> char
|
||||||
|
(** get the n-th character of the buffer. Raise {!Invalid_arg} if
|
||||||
|
index out of bounds *)
|
||||||
|
|
||||||
val length : t -> int
|
val length : t -> int
|
||||||
(** Return the number of characters currently contained in the buffer. *)
|
(** Return the number of characters currently contained in the buffer. *)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue