Git Product home page Git Product logo

lingo's People

Contributors

rick-de-water avatar rick-palmsens avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

lingo's Issues

Support C++20 char8_t

See what works and what breaks, and make sure that utf8 strings can be implicitly constructed from all string literals with an utf8 encoding

Add missing string functions

Constructors

  • iterator (Not easy to restrict iterators to either points or units, skip for now)
  • std::initializer_list (Same for initializer list)

Member functions

  • assign (Skip iterators and initializer list here as well)
  • shrink_to_fit
  • insert
  • erase
  • pop_back (would require reading encoding backwards, probably not be worth the effort) Skip push_back and pop_back for now, use append or += to add code points.
  • append
  • starts_with
  • ends_width
  • replace
  • substr
  • copy
  • swap
  • find
  • rfind
  • find_first_of
  • find_first_not_of
  • find_last_of
  • find_last_not_of

Free functions

  • operator+
  • operator== with cstring literals

Streams could be a pain

  • operator<<
  • operator>>
  • getline

Hashing

  • std::hash Moved to a separate issue #48

Refactor string_storage

string_storage should be responsible not just for allocating memory, but also moving code units around efficiently.

Design a better interface that allows string to simply tell the string_storage where the data needs to go, while string_storage puts everything in the right place.

It should also be efficient, switching to std::memcpy or std::move where possible, and also have a strong exception guarantee.

Unicode normalization algorithm

  • Add normalize to the Unicode page.
  • Add normalize as a free function that can take any string object with a page that has a normalize function.
  • Add normalize as a member function to lingo::strings with a page that has a normalize function.

Add missing string_view functions

Member functions

  • copy
  • substr
  • starts_with
  • ends_with
  • find
  • rfind
  • find_first_of
  • find_first_not_of
  • find_last_of
  • find_last_not_of

Free functions

  • operator+ (actually not standard, but I want it anyway!)
  • operator<<

Hashing

  • std::hash Moved to a separate issue #48

Add more test data

Use Python to generate a ton of validated data and throw it at the library.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.