packages feed

foreign-0.1.1.0: cbits/hs_std_string.cpp

#include <HsFFI.h>

#include <cstring>
#include <string>

// ----------------------------------------------------------------------------
extern "C" {

HsInt hs_std_string_size(std::string* str) {
  if (str)
    return (HsInt)str->size();
  else
    return 0;
}

const char* hs_std_string_cstr(std::string* str) {
  if (str)
    return str->c_str();
  else
    return 0;
}

void hs_copy_std_string(std::string* str, HsInt size, char* buf) {
  if (str != NULL)
    memcpy(buf, str->c_str(), size);
}

std::string* hs_new_std_string_def() { return new std::string; }

std::string* hs_new_std_string(char* s, HsInt length) {
  return new std::string(s, length);
}

void hs_delete_std_string(std::string* str) { delete str; }

// ----------------------------------------------------------------------------
} // End extern "C"