Nuspell
spellchecker
Public Member Functions | Static Public Member Functions | List of all members
nuspell::v3::Dictionary Class Reference

The only important public class. More...

#include <dictionary.hxx>

Inheritance diagram for nuspell::v3::Dictionary:
[legend]
Collaboration diagram for nuspell::v3::Dictionary:
[legend]

Public Member Functions

auto imbue (const std::locale &loc) -> void
 Sets external (public API) encoding. More...
 
auto imbue_utf8 () -> void
 Sets external (public API) encoding to UTF-8. More...
 
auto spell (const std::string &word) const -> bool
 Checks if a given word is correct. More...
 
auto suggest (const std::string &word, std::vector< std::string > &out) const -> void
 Suggests correct words for a given incorrect word. More...
 

Static Public Member Functions

static auto load_from_aff_dic (std::istream &aff, std::istream &dic) -> Dictionary
 Create a dictionary from opened files as iostreams. More...
 
static auto load_from_path (const std::string &file_path_without_extension) -> Dictionary
 Create a dictionary from files. More...
 

Detailed Description

The only important public class.

Member Function Documentation

◆ imbue()

auto Dictionary::imbue ( const std::locale &  loc) -> void

Sets external (public API) encoding.

By external encoding we mean the encoding of the strings that you are going to pass to other functions like spell() and suggest(). This function should be used rarely, as the default external encoding is UTF-8.

This encoding should not be misunderstood with the internal encoding or with the encoding of the dictionary files (.dic and .aff). It can be different than any of them.

The locale must contain std::codecvt<wchar_t, char, mbstate_t> facet that can convert the strings from the external locale to UTF-32 on non-Windows platforms, and to UTF-16 on Windows.

Parameters
loclocale object with valid codecvt<wchar_t, char, mbstate_t>

◆ imbue_utf8()

auto Dictionary::imbue_utf8 ( ) -> void

Sets external (public API) encoding to UTF-8.

Call this only if you used imbue() and want to revert it to UTF-8.

◆ load_from_aff_dic()

auto Dictionary::load_from_aff_dic ( std::istream &  aff,
std::istream &  dic 
) -> Dictionary
static

Create a dictionary from opened files as iostreams.

Prefer using load_from_path(). Use this if you have a specific use case, like when .aff and .dic are in-memory buffers istringstream.

Parameters
affThe iostream of the .aff file
dicThe iostream of the .dic file
Returns
Dictionary object
Exceptions
Dictionary_Loading_Erroron error

◆ load_from_path()

auto Dictionary::load_from_path ( const std::string &  file_path_without_extension) -> Dictionary
static

Create a dictionary from files.

Parameters
file_path_without_extensionpath without extensions (without .dic or .aff)
Returns
Dictionary object
Exceptions
Dictionary_Loading_Erroron error

◆ spell()

auto Dictionary::spell ( const std::string &  word) const -> bool

Checks if a given word is correct.

Parameters
wordany word
Returns
true if correct, false otherwise

◆ suggest()

auto Dictionary::suggest ( const std::string &  word,
std::vector< std::string > &  out 
) const -> void

Suggests correct words for a given incorrect word.

Parameters
[in]wordincorrect word
[out]outthis object will be populated with the suggestions

The documentation for this class was generated from the following files: