Module Garter_String

include Js.String2;
type t = string;
let make: 'a => t;
let fromCharCode: int => t;
let fromCharCodeMany: array(int) => t;
let fromCodePoint: int => t;
let fromCodePointMany: array(int) => t;
let length: t => int;
let get: t => int => t;
let charAt: t => int => t;
let charCodeAt: t => int => float;
let codePointAt: t => int => option(int);
let concat: t => t => t;
let concatMany: t => array(t) => t;
let endsWith: t => t => bool;
let endsWithFrom: t => t => int => bool;
let includes: t => t => bool;
let includesFrom: t => t => int => bool;
let indexOf: t => t => int;
let indexOfFrom: t => t => int => int;
let lastIndexOf: t => t => int;
let lastIndexOfFrom: t => t => int => int;
let localeCompare: t => t => float;
let match_: t => Js_re.t => option(array(t));
let normalize: t => t;
let normalizeByForm: t => t => t;
let repeat: t => int => t;
let replace: t => t => t => t;
let replaceByRe: t => Js_re.t => t => t;
let unsafeReplaceBy0: t => Js_re.t => (t => int => t => t) => t;
let unsafeReplaceBy1: t => Js_re.t => (t => t => int => t => t) => t;
let unsafeReplaceBy2: t => Js_re.t => (t => t => t => int => t => t) => t;
let unsafeReplaceBy3: t => Js_re.t => (t => t => t => t => int => t => t) => t;
let slice: t => from:int => to_:int => t;
let sliceToEnd: t => from:int => t;
let split: t => t => array(t);
let splitAtMost: t => t => limit:int => array(t);
let splitByRe: t => Js_re.t => array(option(t));
let splitByReAtMost: t => Js_re.t => limit:int => array(option(t));
let startsWith: t => t => bool;
let startsWithFrom: t => t => int => bool;
let substr: t => from:int => t;
let substrAtMost: t => from:int => length:int => t;
let substring: t => from:int => to_:int => t;
let substringToEnd: t => from:int => t;
let toLowerCase: t => t;
let toLocaleLowerCase: t => t;
let toUpperCase: t => t;
let toLocaleUpperCase: t => t;
let trim: t => t;
let anchor: t => t => t;
let castToArrayLike: t => Js_array2.array_like(t);
let padEnd: t => int => t;

padEnd n pads the string with " " (U+0020) so that the resulting string reaches a given length n. The padding is applied from the end of the current string.

(ES8)

padEnd "200" 5 = "200  "
let padEndWith: t => int => t => t;

padEndWith n s pads the string with a given string s (repeated, if needed) so that the resulting string reaches a given length n. The padding is applied from the end of the current string.

(ES8)

padEndWith "Breaded Mushrooms" 25 "." = "Breaded Mushrooms........"
let padStart: t => int => t;

padStart n pads the string with " " (U+0020) so that the resulting string reaches a given length n. The padding is applied from the start of the current string.

(ES8)

padStart "200" 5 = "  200"
let padStartWith: t => int => t => t;

padStartWith n s pads the string with a given string s (repeated, if needed) so that the resulting string reaches a given length n. The padding is applied from the start of the current string.

(ES8)

padStartWith "Breaded Mushrooms" 25 "." = "........Breaded Mushrooms"
let trimEnd: t => t;

trimEnd str returns a string that is str with whitespace stripped from the end.

(ES10)

trimEnd "   abc def   " = "   abc def"
trimEnd "\n\r\t abc def \n\n\t\r " = "\n\r\t abc def"
let trimStart: t => t;

trimStart str returns a string that is str with whitespace stripped from the beginning.

(ES10)

trimStart "   abc def   " = "abc def   "
trimStart "\n\r\t abc def \n\n\t\r " = "abc def \n\n\t\r "