Rust: "char": fügt einen Typ und eine Funktion für Unicode-Zeichenkategorien hinzu

Erstellt am 20. Dez. 2011  ·  6Kommentare  ·  Quelle: rust-lang/rust

Für Unicode-Zeichenkategorien siehe http://www.fileformat.info/info/unicode/category/index.htm

Haskell implementiert den Typ „GeneralCategory“ und eine Funktion zur Bestimmung der „GeneralCategory“ eines Charakters.
Ihre Umsetzung geht so:

Ich schlage vor, ein Python-Skript zu schreiben, das etwas Ähnliches tut.

Mit einem solchen Typ und einer solchen Funktion in Rust können wir Funktionen im Modul "char" korrekt implementieren. Siehe http://haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/src/Data-Char.html

Hilfreichster Kommentar

Tut mir leid, einen so alten Thread zu kommentieren, ich habe hier gerade einen Großteil der UCD (v9.0.0) implementiert. Es hängt weder von libicu noch von der Standardbibliothek ab, also sollte es hoffentlich einfach mit Projekten zu verwenden sein (obwohl es wahrscheinlich nicht so zuverlässig wie ICU ist).

Alle 6 Kommentare

Das in Arbeit befindliche Modul namens „unicode::“ in libstd ist der Ort, an dem ich eine Schnittstelle zu libicu skizzieren wollte. Die Entscheidung ist für die meisten Charakterklassen eigentlich nicht ganz einfach, und ICU hat das gut gehandhabt. Ich schätze, wir können es unter core::char veröffentlichen, wenn jeder damit einverstanden ist, eine Abhängigkeit von libicu anzunehmen?

libicu bietet viele zusätzliche wünschenswerte Funktionen und ist wahrscheinlich auf den meisten Computern vorhanden (Python verwendet es, also sollte es für uns in Ordnung sein).

Wollen wir öffentliche libicu-Bindungen bereitstellen oder sie nur intern in Modulen wie "char", "str" ​​usw. verwenden?
Ich tendiere eher zu letzterem.

Um die Funktionen in Rusts "char" korrekt mit libicu zu implementieren, müssen wir meiner Meinung nach nur Funktionen wie "u_isspace()", "u_isdigit ()", "u_forDigit()" aufrufen (http://icu-project.org/ apiref/icu4c/uchar_8h.html).

Wir würden noch keine vollständigen libicu-Bindungen (einschließlich der vielen Konstantendefinitionen) benötigen.

Ich denke, wir sollten den Libicu-Weg gehen. Siehe #1370

Können wir das wieder öffnen? Wir sind nicht mehr auf libicu angewiesen, aber es gibt immer noch keinen einfachen Weg, die Kategorie eines Charakters zu finden.

Tut mir leid, einen so alten Thread zu kommentieren, ich habe hier gerade einen Großteil der UCD (v9.0.0) implementiert. Es hängt weder von libicu noch von der Standardbibliothek ab, also sollte es hoffentlich einfach mit Projekten zu verwenden sein (obwohl es wahrscheinlich nicht so zuverlässig wie ICU ist).

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen