O'Reilly logo

Dart Essentials by Martin Sikora

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Writing a native fuzzy search implementation

This is where things start to get interesting. When working with existing C++ code, you'll probably want to work with multiple instances of the same class, but we can't just instantiate a C++ class in Dart. Instead, we'll crate a wrapper class in Dart that stores the memory address of the C++ object. Let's start by creating a C++ class with a native fuzzy search implementation:

// fuzzy_search.hpp
class FuzzySearch {
public:
    FuzzySearch(Dart_Handle inputItems);
    std::vector<char*> search(const char* term);
    size_t size();
private:
    char** items;
    size_t length
};

This is our header file. Header files in C/C++ are commonly used to define interfaces of libraries. In practice, we can use functions and data structures ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required