;;;; A String, and a str made from one, crossing into dyn: the dyn text counts ;;;; characters and indexes by them, ASCII or not. A char literal appends to a ;;;; String as its code point. (defn as-dyn [d] dyn d) (defn main [] i32 (let [s (string-new "ab") u (string-new "é")] (append u \日) (append u \😀) (append u \!) (let [a (as-dyn s) d (as-dyn u) e (as-dyn (str u))] (println a (length a) (at a 1)) (println d (length d) (at d 1) (at d 3)) (println (slice d 1 3) (chars d)) (println e (length e) (at e 2) (= d e))) (println (length u) (rune-count u)) (free s) (free u)) 0)