Sha256: 244efa13fefe081a291e3c2a4269ba22603710c28d5dcccbfb1f092e2365e3cb

Contents?: true

Size: 1.73 KB

Versions: 16

Compression:

Stored size: 1.73 KB

Contents

#include <sstream>

#include <frequent_items_sketch.hpp>

#include "ext.h"

template<typename T>
void bind_fi_sketch(Rice::Module& m, const char* name) {
  Rice::define_class_under<datasketches::frequent_items_sketch<T>>(m, name)
    .define_constructor(Rice::Constructor<datasketches::frequent_items_sketch<T>, uint16_t>())
    .define_method("empty?", &datasketches::frequent_items_sketch<T>::is_empty)
    .define_method("num_active_items", &datasketches::frequent_items_sketch<T>::get_num_active_items)
    .define_method("total_weight", &datasketches::frequent_items_sketch<T>::get_total_weight)
    .define_method("estimate", &datasketches::frequent_items_sketch<T>::get_estimate)
    .define_method("lower_bound", &datasketches::frequent_items_sketch<T>::get_lower_bound)
    .define_method("upper_bound", &datasketches::frequent_items_sketch<T>::get_upper_bound)
    .define_method("maximum_error", &datasketches::frequent_items_sketch<T>::get_maximum_error)
    .define_method(
      "update",
      [](datasketches::frequent_items_sketch<T>& self, const T item) {
        self.update(item);
      })
    .define_method(
      "serialize",
      [](datasketches::frequent_items_sketch<T>& self) {
        std::ostringstream oss;
        self.serialize(oss);
        return oss.str();
      })
    // TODO change to summary?
    .define_method(
      "to_string",
      [](datasketches::frequent_items_sketch<T>& self) {
        return self.to_string();
      })
    .define_singleton_function(
      "deserialize",
      [](const std::string& is) {
        std::istringstream iss(is);
        return datasketches::frequent_items_sketch<T>::deserialize(iss);
      });
}

void init_fi(Rice::Module& m) {
  bind_fi_sketch<std::string>(m, "FrequentStringsSketch");
}

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
datasketches-0.4.4 ext/datasketches/fi_wrapper.cpp
datasketches-0.4.3 ext/datasketches/fi_wrapper.cpp
datasketches-0.4.2 ext/datasketches/fi_wrapper.cpp
datasketches-0.4.1 ext/datasketches/fi_wrapper.cpp
datasketches-0.4.0 ext/datasketches/fi_wrapper.cpp
datasketches-0.3.2 ext/datasketches/fi_wrapper.cpp
datasketches-0.3.1 ext/datasketches/fi_wrapper.cpp
datasketches-0.3.0 ext/datasketches/fi_wrapper.cpp
datasketches-0.2.7 ext/datasketches/fi_wrapper.cpp
datasketches-0.2.6 ext/datasketches/fi_wrapper.cpp
datasketches-0.2.5 ext/datasketches/fi_wrapper.cpp
datasketches-0.2.4 ext/datasketches/fi_wrapper.cpp
datasketches-0.2.3 ext/datasketches/fi_wrapper.cpp
datasketches-0.2.2 ext/datasketches/fi_wrapper.cpp
datasketches-0.2.1 ext/datasketches/fi_wrapper.cpp
datasketches-0.2.0 ext/datasketches/fi_wrapper.cpp