1BytesLabels(3)                   OCaml library                  BytesLabels(3)
2
3
4

NAME

6       BytesLabels - Byte sequence operations.
7

Module

9       Module   BytesLabels
10

Documentation

12       Module BytesLabels
13        : sig end
14
15
16       Byte sequence operations.
17
18
19       Since 4.02.0
20
21           This  module  is  intended  to  be  used through {!StdLabels} which
22       replaces
23           {!Array}, {!Bytes}, {!List} and {!String} with their labeled  coun‐
24       terparts.
25
26           For example:
27           {[
28              open StdLabels
29
30              let first = Bytes.sub ~pos:0 ~len:1
31           ]}
32
33
34
35
36
37
38       val length : bytes -> int
39
40       Return the length (number of bytes) of the argument.
41
42
43
44       val get : bytes -> int -> char
45
46
47       get s n returns the byte at index n in argument s .
48
49
50       Raises Invalid_argument if n is not a valid index in s .
51
52
53
54       val set : bytes -> int -> char -> unit
55
56
57       set s n c modifies s in place, replacing the byte at index n with c .
58
59
60       Raises Invalid_argument if n is not a valid index in s .
61
62
63
64       val create : int -> bytes
65
66
67       create  n  returns  a  new  byte sequence of length n . The sequence is
68       uninitialized and contains arbitrary bytes.
69
70
71       Raises Invalid_argument if n < 0 or n > Sys.max_string_length .
72
73
74
75       val make : int -> char -> bytes
76
77
78       make n c returns a new byte sequence of length n , filled with the byte
79       c .
80
81
82       Raises Invalid_argument if n < 0 or n > Sys.max_string_length .
83
84
85
86       val init : int -> f:(int -> char) -> bytes
87
88
89       init  n  f returns a fresh byte sequence of length n , with character i
90       initialized to the result of f i .
91
92
93       Raises Invalid_argument if n < 0 or n > Sys.max_string_length .
94
95
96
97       val empty : bytes
98
99       A byte sequence of size 0.
100
101
102
103       val copy : bytes -> bytes
104
105       Return a new byte sequence that contains the same bytes  as  the  argu‐
106       ment.
107
108
109
110       val of_string : string -> bytes
111
112       Return  a  new  byte sequence that contains the same bytes as the given
113       string.
114
115
116
117       val to_string : bytes -> string
118
119       Return a new string that contains the same  bytes  as  the  given  byte
120       sequence.
121
122
123
124       val sub : bytes -> pos:int -> len:int -> bytes
125
126
127       sub  s start len returns a new byte sequence of length len , containing
128       the subsequence of s that starts at position start and has length len .
129
130
131       Raises Invalid_argument if start and len do not designate a valid range
132       of s .
133
134
135
136       val sub_string : bytes -> pos:int -> len:int -> string
137
138       Same as sub but return a string instead of a byte sequence.
139
140
141
142       val extend : bytes -> left:int -> right:int -> bytes
143
144
145       extend s left right returns a new byte sequence that contains the bytes
146       of s , with left uninitialized bytes prepended and right  uninitialized
147       bytes  appended  to  it.  If  left or right is negative, then bytes are
148       removed (instead of appended) from the corresponding side of s .
149
150
151       Since 4.05.0
152
153
154       Raises Invalid_argument if the result length is negative or longer than
155       Sys.max_string_length bytes.
156
157
158
159       val fill : bytes -> pos:int -> len:int -> char -> unit
160
161
162       fill s start len c modifies s in place, replacing len characters with c
163       , starting at start .
164
165
166       Raises Invalid_argument if start and len do not designate a valid range
167       of s .
168
169
170
171       val  blit  :  src:bytes  ->  src_pos:int -> dst:bytes -> dst_pos:int ->
172       len:int -> unit
173
174
175       blit src srcoff dst dstoff len copies len bytes  from  sequence  src  ,
176       starting at index srcoff , to sequence dst , starting at index dstoff .
177       It works correctly even if src and dst are the same byte sequence,  and
178       the source and destination intervals overlap.
179
180
181       Raises  Invalid_argument  if  srcoff  and  len do not designate a valid
182       range of src , or if dstoff and len do not designate a valid  range  of
183       dst .
184
185
186
187       val blit_string : src:string -> src_pos:int -> dst:bytes -> dst_pos:int
188       -> len:int -> unit
189
190
191       blit src srcoff dst dstoff len copies  len  bytes  from  string  src  ,
192       starting  at  index  srcoff  , to byte sequence dst , starting at index
193       dstoff .
194
195
196       Since 4.05.0
197
198
199       Raises Invalid_argument if srcoff and len  do  not  designate  a  valid
200       range  of  src , or if dstoff and len do not designate a valid range of
201       dst .
202
203
204
205       val concat : sep:bytes -> bytes list -> bytes
206
207
208       concat sep sl concatenates the list of byte sequences  sl  ,  inserting
209       the separator byte sequence sep between each, and returns the result as
210       a new byte sequence.
211
212
213
214       val cat : bytes -> bytes -> bytes
215
216
217       cat s1 s2 concatenates s1 and s2 and returns the  result  as  new  byte
218       sequence.
219
220
221       Since 4.05.0
222
223
224       Raises    Invalid_argument    if    the    result    is   longer   than
225       Sys.max_string_length bytes.
226
227
228
229       val iter : f:(char -> unit) -> bytes -> unit
230
231
232       iter f s applies function f in turn to all the bytes  of  s  .   It  is
233       equivalent to f (get s 0); f (get s 1); ...; f (get s
234           (length s - 1)); () .
235
236
237
238       val iteri : f:(int -> char -> unit) -> bytes -> unit
239
240       Same  as  Bytes.iter  , but the function is applied to the index of the
241       byte as first argument and the byte itself as second argument.
242
243
244
245       val map : f:(char -> char) -> bytes -> bytes
246
247
248       map f s applies function f in turn to all the bytes of s and stores the
249       resulting bytes in a new sequence that is returned as the result.
250
251
252
253       val mapi : f:(int -> char -> char) -> bytes -> bytes
254
255
256       mapi  f s calls f with each character of s and its index (in increasing
257       index order) and stores the resulting bytes in a new sequence  that  is
258       returned as the result.
259
260
261
262       val trim : bytes -> bytes
263
264       Return a copy of the argument, without leading and trailing whitespace.
265       The bytes regarded as whitespace are the ASCII characters ' ' ,  '\012'
266       , '\n' , '\r' , and '\t' .
267
268
269
270       val escaped : bytes -> bytes
271
272       Return  a  copy of the argument, with special characters represented by
273       escape sequences, following the lexical conventions of OCaml.
274
275
276
277       val index : bytes -> char -> int
278
279
280       index s c returns the index of the first occurrence of byte c in s .
281
282
283       Raises Not_found if c does not occur in s .
284
285
286
287       val index_opt : bytes -> char -> int option
288
289
290       index_opt s c returns the index of the first occurrence of byte c in  s
291       or None if c does not occur in s .
292
293
294       Since 4.05
295
296
297
298       val rindex : bytes -> char -> int
299
300
301       rindex s c returns the index of the last occurrence of byte c in s .
302
303
304       Raises Not_found if c does not occur in s .
305
306
307
308       val rindex_opt : bytes -> char -> int option
309
310
311       rindex_opt  s c returns the index of the last occurrence of byte c in s
312       or None if c does not occur in s .
313
314
315       Since 4.05
316
317
318
319       val index_from : bytes -> int -> char -> int
320
321
322       index_from s i c returns the index of the first occurrence of byte c in
323       s after position i .  Bytes.index s c is equivalent to Bytes.index_from
324       s 0 c .
325
326
327       Raises Invalid_argument if i is not a valid position in s .
328
329
330       Raises Not_found if c does not occur in s after position i .
331
332
333
334       val index_from_opt : bytes -> int -> char -> int option
335
336
337       index_from _opts i c returns the index of the first occurrence of  byte
338       c in s after position i or None if c does not occur in s after position
339       i .  Bytes.index_opt s c is equivalent to Bytes.index_from_opt s 0 c .
340
341
342       Since 4.05
343
344
345       Raises Invalid_argument if i is not a valid position in s .
346
347
348
349       val rindex_from : bytes -> int -> char -> int
350
351
352       rindex_from s i c returns the index of the last occurrence of byte c in
353       s  before  position  i+1  .   rindex s c is equivalent to rindex_from s
354       (Bytes.length s - 1) c .
355
356
357       Raises Invalid_argument if i+1 is not a valid position in s .
358
359
360       Raises Not_found if c does not occur in s before position i+1 .
361
362
363
364       val rindex_from_opt : bytes -> int -> char -> int option
365
366
367       rindex_from_opt s i c returns the index of the last occurrence of  byte
368       c  in  s  before  position  i+1 or None if c does not occur in s before
369       position  i+1  .   rindex_opt  s  c  is  equivalent  to  rindex_from  s
370       (Bytes.length s - 1) c .
371
372
373       Since 4.05
374
375
376       Raises Invalid_argument if i+1 is not a valid position in s .
377
378
379
380       val contains : bytes -> char -> bool
381
382
383       contains s c tests if byte c appears in s .
384
385
386
387       val contains_from : bytes -> int -> char -> bool
388
389
390       contains_from  s  start  c  tests if byte c appears in s after position
391       start .  contains s c is equivalent to contains_from
392           s 0 c .
393
394
395       Raises Invalid_argument if start is not a valid position in s .
396
397
398
399       val rcontains_from : bytes -> int -> char -> bool
400
401
402       rcontains_from s stop c tests if byte c appears in  s  before  position
403       stop+1 .
404
405
406       Raises  Invalid_argument  if stop < 0 or stop+1 is not a valid position
407       in s .
408
409
410
411       val uppercase : bytes -> bytes
412
413       Deprecated.  Functions operating on Latin-1 character  set  are  depre‐
414       cated.
415
416
417       Return a copy of the argument, with all lowercase letters translated to
418       uppercase, including accented letters of the ISO Latin-1 (8859-1) char‐
419       acter set.
420
421
422
423       val lowercase : bytes -> bytes
424
425       Deprecated.   Functions  operating  on Latin-1 character set are depre‐
426       cated.
427
428
429       Return a copy of the argument, with all uppercase letters translated to
430       lowercase, including accented letters of the ISO Latin-1 (8859-1) char‐
431       acter set.
432
433
434
435       val capitalize : bytes -> bytes
436
437       Deprecated.  Functions operating on Latin-1 character  set  are  depre‐
438       cated.
439
440
441       Return  a  copy of the argument, with the first character set to upper‐
442       case, using the ISO Latin-1 (8859-1) character set..
443
444
445
446       val uncapitalize : bytes -> bytes
447
448       Deprecated.  Functions operating on Latin-1 character  set  are  depre‐
449       cated.
450
451
452       Return  a  copy of the argument, with the first character set to lower‐
453       case, using the ISO Latin-1 (8859-1) character set..
454
455
456
457       val uppercase_ascii : bytes -> bytes
458
459       Return a copy of the argument, with all lowercase letters translated to
460       uppercase, using the US-ASCII character set.
461
462
463       Since 4.05.0
464
465
466
467       val lowercase_ascii : bytes -> bytes
468
469       Return a copy of the argument, with all uppercase letters translated to
470       lowercase, using the US-ASCII character set.
471
472
473       Since 4.05.0
474
475
476
477       val capitalize_ascii : bytes -> bytes
478
479       Return a copy of the argument, with the first character set  to  upper‐
480       case, using the US-ASCII character set.
481
482
483       Since 4.05.0
484
485
486
487       val uncapitalize_ascii : bytes -> bytes
488
489       Return  a  copy of the argument, with the first character set to lower‐
490       case, using the US-ASCII character set.
491
492
493       Since 4.05.0
494
495
496       type t = bytes
497
498
499       An alias for the type of byte sequences.
500
501
502
503       val compare : t -> t -> int
504
505       The comparison function for byte sequences, with the same specification
506       as  compare .  Along with the type t , this function compare allows the
507       module Bytes to be passed as argument  to  the  functors  Set.Make  and
508       Map.Make .
509
510
511
512       val equal : t -> t -> bool
513
514       The equality function for byte sequences.
515
516
517       Since 4.05.0
518
519
520
521
522   Iterators
523       val to_seq : t -> char Seq.t
524
525       Iterate  on the string, in increasing index order. Modifications of the
526       string during iteration will be reflected in the iterator.
527
528
529       Since 4.07
530
531
532
533       val to_seqi : t -> (int * char) Seq.t
534
535       Iterate on the string, in  increasing  order,  yielding  indices  along
536       chars
537
538
539       Since 4.07
540
541
542
543       val of_seq : char Seq.t -> t
544
545       Create a string from the generator
546
547
548       Since 4.07
549
550
551
552
553   Binary encoding/decoding of integers
554       The  functions in this section binary encode and decode integers to and
555       from byte sequences.
556
557       All following functions raise Invalid_argument if the space  needed  at
558       index i to decode or encode the integer is not available.
559
560       Little-endian (resp. big-endian) encoding means that least (resp. most)
561       significant bytes are stored first.  Big-endian is also known  as  net‐
562       work  byte  order.   Native-endian  encoding is either little-endian or
563       big-endian depending on Sys.big_endian .
564
565       32-bit and 64-bit integers are  represented  by  the  int32  and  int64
566       types, which can be interpreted either as signed or unsigned numbers.
567
568       8-bit  and  16-bit  integers are represented by the int type, which has
569       more bits than the binary encoding.  These extra bits  are  handled  as
570       follows:
571
572       -Functions that decode signed (resp. unsigned) 8-bit or 16-bit integers
573       represented by int values sign-extend (resp. zero-extend) their result.
574
575       -Functions that encode 8-bit or 16-bit integers represented by int val‐
576       ues truncate their input to their least significant bytes.
577
578
579       val get_uint8 : bytes -> int -> int
580
581
582       get_uint8 b i is b 's unsigned 8-bit integer starting at byte index i .
583
584
585       Since 4.08
586
587
588
589       val get_int8 : bytes -> int -> int
590
591
592       get_int8 b i is b 's signed 8-bit integer starting at byte index i .
593
594
595       Since 4.08
596
597
598
599       val get_uint16_ne : bytes -> int -> int
600
601
602       get_uint16_ne  b i is b 's native-endian unsigned 16-bit integer start‐
603       ing at byte index i .
604
605
606       Since 4.08
607
608
609
610       val get_uint16_be : bytes -> int -> int
611
612
613       get_uint16_be b i is b 's big-endian unsigned 16-bit  integer  starting
614       at byte index i .
615
616
617       Since 4.08
618
619
620
621       val get_uint16_le : bytes -> int -> int
622
623
624       get_uint16_le  b i is b 's little-endian unsigned 16-bit integer start‐
625       ing at byte index i .
626
627
628       Since 4.08
629
630
631
632       val get_int16_ne : bytes -> int -> int
633
634
635       get_int16_ne b i is b 's native-endian signed 16-bit  integer  starting
636       at byte index i .
637
638
639       Since 4.08
640
641
642
643       val get_int16_be : bytes -> int -> int
644
645
646       get_int16_be  b  i is b 's big-endian signed 16-bit integer starting at
647       byte index i .
648
649
650       Since 4.08
651
652
653
654       val get_int16_le : bytes -> int -> int
655
656
657       get_int16_le b i is b 's little-endian signed 16-bit  integer  starting
658       at byte index i .
659
660
661       Since 4.08
662
663
664
665       val get_int32_ne : bytes -> int -> int32
666
667
668       get_int32_ne  b i is b 's native-endian 32-bit integer starting at byte
669       index i .
670
671
672       Since 4.08
673
674
675
676       val get_int32_be : bytes -> int -> int32
677
678
679       get_int32_be b i is b 's big-endian 32-bit  integer  starting  at  byte
680       index i .
681
682
683       Since 4.08
684
685
686
687       val get_int32_le : bytes -> int -> int32
688
689
690       get_int32_le  b i is b 's little-endian 32-bit integer starting at byte
691       index i .
692
693
694       Since 4.08
695
696
697
698       val get_int64_ne : bytes -> int -> int64
699
700
701       get_int64_ne b i is b 's native-endian 64-bit integer starting at  byte
702       index i .
703
704
705       Since 4.08
706
707
708
709       val get_int64_be : bytes -> int -> int64
710
711
712       get_int64_be  b  i  is  b 's big-endian 64-bit integer starting at byte
713       index i .
714
715
716       Since 4.08
717
718
719
720       val get_int64_le : bytes -> int -> int64
721
722
723       get_int64_le b i is b 's little-endian 64-bit integer starting at  byte
724       index i .
725
726
727       Since 4.08
728
729
730
731       val set_uint8 : bytes -> int -> int -> unit
732
733
734       set_uint8 b i v sets b 's unsigned 8-bit integer starting at byte index
735       i to v .
736
737
738       Since 4.08
739
740
741
742       val set_int8 : bytes -> int -> int -> unit
743
744
745       set_int8 b i v sets b 's signed 8-bit integer starting at byte index  i
746       to v .
747
748
749       Since 4.08
750
751
752
753       val set_uint16_ne : bytes -> int -> int -> unit
754
755
756       set_uint16_ne  b  i  v  sets b 's native-endian unsigned 16-bit integer
757       starting at byte index i to v .
758
759
760       Since 4.08
761
762
763
764       val set_uint16_be : bytes -> int -> int -> unit
765
766
767       set_uint16_be b i v sets b 's big-endian unsigned 16-bit integer start‐
768       ing at byte index i to v .
769
770
771       Since 4.08
772
773
774
775       val set_uint16_le : bytes -> int -> int -> unit
776
777
778       set_uint16_le  b  i  v  sets b 's little-endian unsigned 16-bit integer
779       starting at byte index i to v .
780
781
782       Since 4.08
783
784
785
786       val set_int16_ne : bytes -> int -> int -> unit
787
788
789       set_int16_ne b i v sets b 's native-endian signed 16-bit integer start‐
790       ing at byte index i to v .
791
792
793       Since 4.08
794
795
796
797       val set_int16_be : bytes -> int -> int -> unit
798
799
800       set_int16_be  b i v sets b 's big-endian signed 16-bit integer starting
801       at byte index i to v .
802
803
804       Since 4.08
805
806
807
808       val set_int16_le : bytes -> int -> int -> unit
809
810
811       set_int16_le b i v sets b 's little-endian signed 16-bit integer start‐
812       ing at byte index i to v .
813
814
815       Since 4.08
816
817
818
819       val set_int32_ne : bytes -> int -> int32 -> unit
820
821
822       set_int32_ne  b  i v sets b 's native-endian 32-bit integer starting at
823       byte index i to v .
824
825
826       Since 4.08
827
828
829
830       val set_int32_be : bytes -> int -> int32 -> unit
831
832
833       set_int32_be b i v sets b 's big-endian 32-bit integer starting at byte
834       index i to v .
835
836
837       Since 4.08
838
839
840
841       val set_int32_le : bytes -> int -> int32 -> unit
842
843
844       set_int32_le  b  i v sets b 's little-endian 32-bit integer starting at
845       byte index i to v .
846
847
848       Since 4.08
849
850
851
852       val set_int64_ne : bytes -> int -> int64 -> unit
853
854
855       set_int64_ne b i v sets b 's native-endian 64-bit integer  starting  at
856       byte index i to v .
857
858
859       Since 4.08
860
861
862
863       val set_int64_be : bytes -> int -> int64 -> unit
864
865
866       set_int64_be b i v sets b 's big-endian 64-bit integer starting at byte
867       index i to v .
868
869
870       Since 4.08
871
872
873
874       val set_int64_le : bytes -> int -> int64 -> unit
875
876
877       set_int64_le b i v sets b 's little-endian 64-bit integer  starting  at
878       byte index i to v .
879
880
881       Since 4.08
882
883
884
885
886
887OCamldoc                          2020-09-01                    BytesLabels(3)
Impressum