This repository has been archived on 2020-06-07. You can view files and clone it, but cannot push or open issues or pull requests.
php-armadillo/src/constants.cc
2019-03-24 00:24:34 +08:00

51 lines
1.8 KiB
C++

//
// php-armadillo/constants.cc
//
// @Author CismonX
//
#include "php_arma.hh"
#include "constants.hh"
#include <tuple>
namespace php_arma
{
template <typename... Ts>
zend_always_inline
void const_declare(zend_class_entry *ce, Ts... constants)
{
for (auto &&[name, val] : { constants... }) {
zend_declare_class_constant_long(ce, name, strlen(name), val);
}
}
void constants_init()
{
const_declare(fill_ce = abstract_class_register("Fill"),
std::tuple("NONE", fill::none),
std::tuple("ZEROS", fill::zeros),
std::tuple("ONES", fill::ones),
std::tuple("EYE", fill::eye),
std::tuple("RANDU", fill::randu),
std::tuple("RANDN", fill::randn)
);
const_declare(file_type_ce = abstract_class_register("FileType"),
std::tuple("AUTO_DETECT", file_type::auto_detect),
std::tuple("ARMA_BINARY", file_type::arma_binary),
std::tuple("ARMA_ASCII", file_type::arma_ascii),
std::tuple("RAW_BINARY", file_type::raw_binary),
std::tuple("RAW_ASCII", file_type::raw_ascii),
std::tuple("CSV_ASCII", file_type::csv_ascii),
std::tuple("COORD_ASCII", file_type::coord_ascii),
std::tuple("PGM_BINARY", file_type::pgm_binary)
);
const_declare(sort_direction_ce = abstract_class_register("SortDirection"),
std::tuple("ASCEND", sort_direction::ascend),
std::tuple("DESCEND", sort_direction::descend),
std::tuple("STRICT_ASCEND", sort_direction::strict_ascend),
std::tuple("STRICT_DESCEND", sort_direction::strict_descend)
);
}
}