Mirror: 馃帺 A tiny but capable push & pull stream library for TypeScript and Flow
at v4.0.5 726 B view raw
1type t('a) = array('a); 2 3module Helpers = { 4 [@bs.get_index] external get: (t('a), int) => option('a) = ""; 5}; 6 7[@bs.new] external make: unit => t('a) = "Array"; 8[@bs.set] external clear: (t('a), [@bs.as 0] _) => unit = "length"; 9[@bs.send] external push: (t('a), 'a) => unit = "push"; 10[@bs.send] external pop: t('a) => option('a) = "pop"; 11[@bs.send] external copy: t('a) => t('a) = "slice"; 12[@bs.get] external size: t('a) => int = "length"; 13[@bs.send] external forEachU: (t('a), (. 'a) => unit) => unit = "forEach"; 14[@bs.send] external forEach: (t('a), 'a => unit) => unit = "forEach"; 15 16let isEmpty = (stack: t('a)): bool => size(stack) === 0; 17 18let top = (stack: t('a)): option('a) => 19 Helpers.get(stack, size(stack) - 1);