byCodePoint

Lazily transform a range of Graphemes to a range of code points.

Useful for converting the result to a string after doing operations on graphemes.

If passed in a range of code points, returns a range with equivalent capabilities.

  1. auto byCodePoint(Range range)
    version(!std_uni_bootstrap)
    byCodePoint
    (
    Range
    )
    (
    Range range
    )
    if (
    isInputRange!Range &&
    is(immutable ElementType!Range == immutable Grapheme)
    )
  2. auto byCodePoint(Range range)

Examples

import std.array : array;
import std.conv : text;
import std.range : retro;

string s = "noe\u0308l"; // noël

// reverse it and convert the result to a string
string reverse = s.byGrapheme
    .array
    .retro
    .byCodePoint
    .text;

assert(reverse == "le\u0308on"); // lëon

Meta