/* This file is part of the 'stringi' project.
* Copyright (c) 2013-2023, Marek Gagolewski
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __stri_exports_h
#define __stri_exports_h
#include
#include
// compare.cpp:
SEXP stri_cmp(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
SEXP stri_cmp_le(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
SEXP stri_cmp_lt(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
SEXP stri_cmp_ge(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
SEXP stri_cmp_gt(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
SEXP stri_cmp_equiv(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
SEXP stri_cmp_nequiv(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
SEXP stri_cmp_eq(SEXP e1, SEXP e2);
SEXP stri_cmp_neq(SEXP e1, SEXP e2);
// sort.cpp
SEXP stri_sort(SEXP str, SEXP decreasing=Rf_ScalarLogical(FALSE),
SEXP na_last=Rf_ScalarLogical(NA_LOGICAL), SEXP opts_collator=R_NilValue);
SEXP stri_rank(SEXP str, SEXP opts_collator=R_NilValue);
SEXP stri_order(SEXP str, SEXP decreasing=Rf_ScalarLogical(FALSE),
SEXP na_last=Rf_ScalarLogical(TRUE), SEXP opts_collator=R_NilValue);
SEXP stri_sort_key(SEXP str, SEXP opts_collator=R_NilValue);
SEXP stri_unique(SEXP str, SEXP opts_collator=R_NilValue);
SEXP stri_duplicated(SEXP str, SEXP fromLast=Rf_ScalarLogical(FALSE),
SEXP opts_collator=R_NilValue);
SEXP stri_duplicated_any(SEXP str, SEXP fromLast=Rf_ScalarLogical(FALSE),
SEXP opts_collator=R_NilValue);
// ICU_settings.cpp:
SEXP stri_info();
// escape.cpp
SEXP stri_escape_unicode(SEXP str);
SEXP stri_unescape_unicode(SEXP str);
// join.cpp:
SEXP stri_flatten(SEXP str, SEXP collapse=Rf_mkString(""),
SEXP na_empty=Rf_ScalarLogical(FALSE), SEXP omit_empty=Rf_ScalarLogical(FALSE));
SEXP stri_join(SEXP strlist, SEXP sep=Rf_mkString(""),
SEXP collapse=R_NilValue, SEXP ignore_null=Rf_ScalarLogical(FALSE));
SEXP stri_join_list(SEXP x, SEXP sep=Rf_mkString(""),
SEXP collapse=R_NilValue);
SEXP stri_join2(SEXP e1, SEXP e2);
SEXP stri_dup(SEXP str, SEXP times);
// length.cpp
SEXP stri_numbytes(SEXP str);
SEXP stri_length(SEXP str);
SEXP stri_isempty(SEXP str);
SEXP stri_width(SEXP str);
// reverse.cpp
SEXP stri_reverse(SEXP s);
// sub.cpp
SEXP stri_sub(SEXP str, SEXP from, SEXP to, SEXP length, SEXP use_matrix=Rf_ScalarLogical(TRUE), SEXP ignore_negative_length=Rf_ScalarLogical(FALSE));
SEXP stri_sub_replacement(SEXP str, SEXP from, SEXP to, SEXP length, SEXP omit_na, SEXP value, SEXP use_matrix=Rf_ScalarLogical(TRUE));
SEXP stri_sub_all(SEXP str, SEXP from, SEXP to, SEXP length, SEXP use_matrix=Rf_ScalarLogical(TRUE), SEXP ignore_negative_length=Rf_ScalarLogical(TRUE));
SEXP stri_sub_replacement_all(SEXP str, SEXP from, SEXP to, SEXP length, SEXP omit_na, SEXP value, SEXP use_matrix=Rf_ScalarLogical(TRUE));
// encoding_management.cpp:
SEXP stri_enc_list();
SEXP stri_enc_info(SEXP enc=R_NilValue);
SEXP stri_enc_set(SEXP enc);
SEXP stri_enc_mark(SEXP str);
// uloc.cpp:
SEXP stri_locale_info(SEXP loc=R_NilValue);
SEXP stri_locale_list();
SEXP stri_locale_set(SEXP loc);
// trim.cpp:
SEXP stri_trim_both(SEXP str, SEXP pattern, SEXP negate=Rf_ScalarLogical(FALSE));
SEXP stri_trim_left(SEXP str, SEXP pattern, SEXP negate=Rf_ScalarLogical(FALSE));
SEXP stri_trim_right(SEXP str, SEXP pattern, SEXP negate=Rf_ScalarLogical(FALSE));
// random.cpp
SEXP stri_rand_shuffle(SEXP str);
SEXP stri_rand_strings(SEXP n, SEXP length, SEXP pattern=Rf_mkString("[A-Za-z0-9]"));
// stats.cpp
SEXP stri_stats_general(SEXP str);
SEXP stri_stats_latex(SEXP str);
// trans_transliterate.cpp:
SEXP stri_trans_list();
SEXP stri_trans_general(SEXP str, SEXP id, SEXP rules, SEXP forward);
// utils.cpp
SEXP stri_list2matrix(SEXP x, SEXP byrow=Rf_ScalarLogical(FALSE),
SEXP fill=Rf_ScalarString(NA_STRING), SEXP n_min=Rf_ScalarInteger(0));
// encoding_conversion.cpp:
SEXP stri_encode(SEXP str, SEXP from=R_NilValue, SEXP to=R_NilValue,
SEXP to_raw=Rf_ScalarLogical(FALSE));
SEXP stri_enc_fromutf32(SEXP str);
SEXP stri_enc_toutf32(SEXP str);
SEXP stri_enc_toutf8(SEXP str, SEXP is_unknown_8bit=Rf_ScalarLogical(FALSE),
SEXP validate=Rf_ScalarLogical(FALSE));
SEXP stri_enc_toascii(SEXP str);
// encoding_detection.cpp:
SEXP stri_enc_detect2(SEXP str, SEXP loc=R_NilValue);
SEXP stri_enc_detect(SEXP str, SEXP filter_angle_brackets=Rf_ScalarLogical(FALSE));
SEXP stri_enc_isascii(SEXP str);
SEXP stri_enc_isutf8(SEXP str);
SEXP stri_enc_isutf16le(SEXP str);
SEXP stri_enc_isutf16be(SEXP str);
SEXP stri_enc_isutf32le(SEXP str);
SEXP stri_enc_isutf32be(SEXP str);
// pad.cpp
SEXP stri_pad(SEXP str, SEXP width, SEXP side=Rf_mkString("left"),
SEXP pad=Rf_mkString(" "), SEXP use_length=Rf_ScalarLogical(FALSE));
// sprintf.cpp
SEXP stri_sprintf(SEXP format, SEXP x,
SEXP na_string=Rf_ScalarString(NA_STRING),
SEXP inf_string=Rf_mkString("Inf"),
SEXP nan_string=Rf_mkString("NaN"),
SEXP use_length=Rf_ScalarLogical(FALSE));
// wrap.cpp
SEXP stri_wrap(SEXP str, SEXP width, SEXP cost_exponent=Rf_ScalarInteger(2),
SEXP indent=Rf_ScalarInteger(0), SEXP exdent=Rf_ScalarInteger(0),
SEXP prefix=Rf_mkString(""), SEXP initial=Rf_mkString(""),
SEXP whitespace_only=Rf_ScalarLogical(FALSE),
SEXP use_length=Rf_ScalarLogical(FALSE), SEXP locale=R_NilValue);
// trans_other.cpp:
SEXP stri_trans_char(SEXP str, SEXP pattern, SEXP replacement);
// trans_casemap.cpp:
SEXP stri_trans_totitle(SEXP str, SEXP opts_brkiter=R_NilValue);
SEXP stri_trans_tolower(SEXP str, SEXP locale=R_NilValue);
SEXP stri_trans_toupper(SEXP str, SEXP locale=R_NilValue);
SEXP stri_trans_casefold(SEXP str);
// trans_normalization.cpp:
SEXP stri_trans_nfc(SEXP s);
SEXP stri_trans_nfd(SEXP s);
SEXP stri_trans_nfkc(SEXP s);
SEXP stri_trans_nfkd(SEXP s);
SEXP stri_trans_nfkc_casefold(SEXP s);
SEXP stri_trans_isnfc(SEXP s);
SEXP stri_trans_isnfd(SEXP s);
SEXP stri_trans_isnfkc(SEXP s);
SEXP stri_trans_isnfkd(SEXP s);
SEXP stri_trans_isnfkc_casefold(SEXP s);
// search
SEXP stri_split_lines(SEXP str, SEXP omit_empty=Rf_ScalarLogical(FALSE));
SEXP stri_split_lines1(SEXP str);
SEXP stri_replace_na(SEXP str, SEXP replacement=Rf_mkString("NA"));
SEXP stri_replace_rstr(SEXP x);
SEXP stri_detect_coll(SEXP str, SEXP pattern,
SEXP negate=Rf_ScalarLogical(FALSE), SEXP max_count=Rf_ScalarInteger(-1),
SEXP opts_collator=R_NilValue);
SEXP stri_count_coll(SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue);
SEXP stri_locate_all_coll(SEXP str, SEXP pattern,
SEXP omit_no_match=Rf_ScalarLogical(FALSE),
SEXP opts_collator=R_NilValue,
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_first_coll(
SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue,
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_last_coll(
SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue,
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_extract_first_coll(SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue);
SEXP stri_extract_last_coll(SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue);
SEXP stri_extract_all_coll(SEXP str, SEXP pattern,
SEXP simplify=Rf_ScalarLogical(FALSE),
SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_collator=R_NilValue);
SEXP stri_replace_all_coll(SEXP str, SEXP pattern, SEXP replacement,
SEXP vectorize_all=Rf_ScalarLogical(TRUE), SEXP opts_collator=R_NilValue);
SEXP stri_replace_first_coll(SEXP str, SEXP pattern, SEXP replacement,
SEXP opts_collator=R_NilValue);
SEXP stri_replace_last_coll(SEXP str, SEXP pattern, SEXP replacement,
SEXP opts_collator=R_NilValue);
SEXP stri_split_coll(SEXP str, SEXP split, SEXP n=Rf_ScalarInteger(-1),
SEXP omit_empty=Rf_ScalarLogical(FALSE), SEXP tokens_only=Rf_ScalarLogical(FALSE),
SEXP simplify=Rf_ScalarLogical(FALSE), SEXP opts_collator=R_NilValue);
SEXP stri_endswith_coll(SEXP str, SEXP pattern, SEXP to=Rf_ScalarInteger(-1),
SEXP negate=Rf_ScalarLogical(FALSE),
SEXP opts_collator=R_NilValue);
SEXP stri_startswith_coll(SEXP str, SEXP pattern, SEXP from=Rf_ScalarInteger(1),
SEXP negate=Rf_ScalarLogical(FALSE),
SEXP opts_collator=R_NilValue);
SEXP stri_subset_coll(SEXP str, SEXP pattern,
SEXP omit_na=Rf_ScalarLogical(FALSE), SEXP negate=Rf_ScalarLogical(FALSE), SEXP opts_collator=R_NilValue);
SEXP stri_subset_coll_replacement(SEXP str, SEXP pattern, SEXP negate, SEXP opts_collator, SEXP value);
SEXP stri_detect_fixed(SEXP str, SEXP pattern,
SEXP negate=Rf_ScalarLogical(FALSE), SEXP max_count=Rf_ScalarInteger(-1),
SEXP opts_fixed=R_NilValue);
SEXP stri_count_fixed(SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue);
SEXP stri_locate_all_fixed(
SEXP str, SEXP pattern,
SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_fixed=R_NilValue,
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_first_fixed(
SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue,
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_last_fixed(
SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue,
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_extract_first_fixed(
SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue
);
SEXP stri_extract_last_fixed(
SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue
);
SEXP stri_extract_all_fixed(
SEXP str, SEXP pattern,
SEXP simplify=Rf_ScalarLogical(FALSE),
SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_fixed=R_NilValue
);
SEXP stri_replace_all_fixed(SEXP str, SEXP pattern, SEXP replacement,
SEXP vectorize_all=Rf_ScalarLogical(TRUE), SEXP opts_fixed=R_NilValue);
SEXP stri_replace_first_fixed(SEXP str, SEXP pattern, SEXP replacement,
SEXP opts_fixed=R_NilValue);
SEXP stri_replace_last_fixed(SEXP str, SEXP pattern, SEXP replacement,
SEXP opts_fixed=R_NilValue);
SEXP stri_split_fixed(SEXP str, SEXP split, SEXP n=Rf_ScalarInteger(-1),
SEXP omit_empty=Rf_ScalarLogical(FALSE), SEXP tokens_only=Rf_ScalarLogical(FALSE),
SEXP simplify=Rf_ScalarLogical(FALSE), SEXP opts_fixed=R_NilValue);
SEXP stri_subset_fixed(SEXP str, SEXP pattern,
SEXP omit_na=Rf_ScalarLogical(FALSE), SEXP negate=Rf_ScalarLogical(FALSE), SEXP opts_fixed=R_NilValue);
SEXP stri_endswith_fixed(SEXP str, SEXP pattern, SEXP to=Rf_ScalarInteger(-1),
SEXP negate=Rf_ScalarLogical(FALSE),
SEXP opts_fixed=R_NilValue);
SEXP stri_startswith_fixed(SEXP str, SEXP pattern, SEXP from=Rf_ScalarInteger(1),
SEXP negate=Rf_ScalarLogical(FALSE),
SEXP opts_fixed=R_NilValue);
SEXP stri_subset_fixed_replacement(SEXP str, SEXP pattern, SEXP negate, SEXP opts_fixed, SEXP value);
SEXP stri_detect_regex(
SEXP str, SEXP pattern,
SEXP negate=Rf_ScalarLogical(FALSE),
SEXP max_count=Rf_ScalarInteger(-1),
SEXP opts_regex=R_NilValue
);
SEXP stri_count_regex(SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue);
SEXP stri_locate_all_regex(
SEXP str, SEXP pattern,
SEXP omit_no_match=Rf_ScalarLogical(FALSE),
SEXP opts_regex=R_NilValue,
SEXP capture_groups=Rf_ScalarLogical(FALSE),
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_first_regex(
SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue,
SEXP capture_groups=Rf_ScalarLogical(FALSE),
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_last_regex(
SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue,
SEXP capture_groups=Rf_ScalarLogical(FALSE),
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_replace_all_regex(
SEXP str, SEXP pattern, SEXP replacement,
SEXP vectorize_all=Rf_ScalarLogical(FALSE), SEXP opts_regex=R_NilValue
);
SEXP stri_replace_first_regex(
SEXP str, SEXP pattern, SEXP replacement,
SEXP opts_regex=R_NilValue
);
SEXP stri_replace_last_regex(
SEXP str, SEXP pattern, SEXP replacement,
SEXP opts_regex=R_NilValue
);
SEXP stri_split_regex(
SEXP str, SEXP pattern, SEXP n=Rf_ScalarInteger(-1),
SEXP omit_empty=Rf_ScalarLogical(FALSE), SEXP tokens_only=Rf_ScalarLogical(FALSE),
SEXP simplify=Rf_ScalarLogical(FALSE), SEXP opts_regex=R_NilValue
);
SEXP stri_subset_regex(
SEXP str, SEXP pattern, SEXP omit_na=Rf_ScalarLogical(FALSE),
SEXP negate=Rf_ScalarLogical(FALSE), SEXP opts_regex=R_NilValue
);
SEXP stri_extract_first_regex(SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue);
SEXP stri_extract_last_regex(SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue);
SEXP stri_extract_all_regex(SEXP str, SEXP pattern,
SEXP simplify=Rf_ScalarLogical(FALSE), SEXP omit_no_match=Rf_ScalarLogical(FALSE),
SEXP opts_regex=R_NilValue);
SEXP stri_match_first_regex(SEXP str, SEXP pattern,
SEXP cg_missing=Rf_ScalarString(NA_STRING), SEXP opts_regex=R_NilValue);
SEXP stri_match_last_regex(SEXP str, SEXP pattern,
SEXP cg_missing=Rf_ScalarString(NA_STRING), SEXP opts_regex=R_NilValue);
SEXP stri_match_all_regex(SEXP str, SEXP pattern,
SEXP omit_no_match=Rf_ScalarLogical(FALSE),
SEXP cg_missing=Rf_ScalarString(NA_STRING), SEXP opts_regex=R_NilValue);
SEXP stri_subset_regex_replacement(SEXP str, SEXP pattern, SEXP negate, SEXP opts_regex, SEXP value);
SEXP stri_detect_charclass(SEXP str, SEXP pattern,
SEXP negate=Rf_ScalarLogical(FALSE), SEXP max_count=Rf_ScalarInteger(-1));
SEXP stri_count_charclass(SEXP str, SEXP pattern);
SEXP stri_extract_first_charclass(SEXP str, SEXP pattern);
SEXP stri_extract_last_charclass(SEXP str, SEXP pattern);
SEXP stri_extract_all_charclass(SEXP str, SEXP pattern,
SEXP merge=Rf_ScalarLogical(TRUE), SEXP simplify=Rf_ScalarLogical(FALSE),
SEXP omit_no_match=Rf_ScalarLogical(FALSE));
SEXP stri_locate_first_charclass(
SEXP str, SEXP pattern, SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_last_charclass(
SEXP str, SEXP pattern, SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_all_charclass(
SEXP str, SEXP pattern,
SEXP merge=Rf_ScalarLogical(TRUE),
SEXP omit_no_match=Rf_ScalarLogical(FALSE),
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_replace_last_charclass(SEXP str, SEXP pattern, SEXP replacement);
SEXP stri_replace_first_charclass(SEXP str, SEXP pattern, SEXP replacement);
SEXP stri_replace_all_charclass(SEXP str, SEXP pattern, SEXP replacement,
SEXP merge=Rf_ScalarLogical(FALSE), SEXP vectorize_all=Rf_ScalarLogical(TRUE));
SEXP stri_split_charclass(SEXP str, SEXP pattern, SEXP n=Rf_ScalarInteger(-1),
SEXP omit_empty=Rf_ScalarLogical(FALSE),
SEXP tokens_only=Rf_ScalarLogical(FALSE), SEXP simplify=Rf_ScalarLogical(FALSE));
SEXP stri_endswith_charclass(SEXP str, SEXP pattern, SEXP to=Rf_ScalarInteger(-1),
SEXP negate=Rf_ScalarLogical(FALSE));
SEXP stri_startswith_charclass(SEXP str, SEXP pattern, SEXP from=Rf_ScalarInteger(1),
SEXP negate=Rf_ScalarLogical(FALSE));
SEXP stri_subset_charclass(SEXP str, SEXP pattern, SEXP omit_na=Rf_ScalarLogical(FALSE), SEXP negate=Rf_ScalarLogical(FALSE));
SEXP stri_subset_charclass_replacement(SEXP str, SEXP pattern, SEXP negate, SEXP value);
SEXP stri_extract_all_boundaries(SEXP str, SEXP simplify,
SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_brkiter=R_NilValue);
SEXP stri_extract_first_boundaries(SEXP str, SEXP opts_brkiter=R_NilValue);
SEXP stri_extract_last_boundaries(SEXP str, SEXP opts_brkiter=R_NilValue);
SEXP stri_locate_all_boundaries(
SEXP str, SEXP omit_no_match=Rf_ScalarLogical(FALSE),
SEXP opts_brkiter=R_NilValue,
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_first_boundaries(
SEXP str,
SEXP opts_brkiter=R_NilValue,
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_locate_last_boundaries(
SEXP str,
SEXP opts_brkiter=R_NilValue,
SEXP get_length=Rf_ScalarLogical(FALSE)
);
SEXP stri_split_boundaries(SEXP str, SEXP n=Rf_ScalarInteger(-1),
SEXP tokens_only=Rf_ScalarLogical(FALSE),
SEXP simplify=Rf_ScalarLogical(FALSE), SEXP opts_brkiter=R_NilValue);
SEXP stri_count_boundaries(SEXP str, SEXP opts_brkiter=R_NilValue);
// date/time
SEXP stri_timezone_list(SEXP region=Rf_ScalarString(NA_STRING),
SEXP offset=Rf_ScalarInteger(NA_INTEGER));
SEXP stri_timezone_set(SEXP tz);
SEXP stri_timezone_info(SEXP tz=R_NilValue, SEXP locale=R_NilValue,
SEXP display_type=Rf_mkString("long"));
SEXP stri_datetime_symbols(SEXP locale=R_NilValue,
SEXP context=Rf_mkString("standalone"), SEXP width=Rf_mkString("wide"));
SEXP stri_datetime_now();
SEXP stri_datetime_add(SEXP time, SEXP value=Rf_ScalarInteger(1),
SEXP units=Rf_mkString("seconds"), SEXP tz=R_NilValue, SEXP locale=R_NilValue);
SEXP stri_datetime_fields(SEXP time, SEXP tz=R_NilValue, SEXP locale=R_NilValue);
SEXP stri_datetime_create(SEXP year, SEXP month, SEXP day,
SEXP hour=Rf_ScalarInteger(12), SEXP minute=Rf_ScalarInteger(0),
SEXP second=Rf_ScalarInteger(0), SEXP lenient=Rf_ScalarLogical(FALSE),
SEXP tz=R_NilValue, SEXP locale=R_NilValue);
SEXP stri_datetime_format(SEXP time, SEXP format=Rf_mkString("uuuu-MM-dd HH:mm:ss"),
SEXP tz=R_NilValue, SEXP locale=R_NilValue);
SEXP stri_datetime_parse(SEXP str, SEXP format=Rf_mkString("uuuu-MM-dd HH:mm:ss"),
SEXP lenient=Rf_ScalarLogical(FALSE), SEXP tz=R_NilValue, SEXP locale=R_NilValue);
SEXP stri_datetime_fstr(SEXP x);
// SEXP stri_c_posixst(SEXP x); // internal
// prepare_arg.cpp:
SEXP stri_prepare_arg_string_1(SEXP x, SEXP argname);
SEXP stri_prepare_arg_double_1(SEXP x, SEXP argname); // TODO: factors_as_strings
SEXP stri_prepare_arg_integer_1(SEXP x, SEXP argname); // TODO: factors_as_strings
SEXP stri_prepare_arg_logical_1(SEXP x, SEXP argname);
SEXP stri_prepare_arg_string(SEXP x, SEXP argname);
SEXP stri_prepare_arg_double(SEXP x, SEXP argname); // TODO: factors_as_strings
SEXP stri_prepare_arg_integer(SEXP x, SEXP argname); // TODO: factors_as_strings
SEXP stri_prepare_arg_logical(SEXP x, SEXP argname);
SEXP stri_prepare_arg_raw(SEXP x, SEXP argname); // TODO: factors_as_strings
// TODO: other prepare args
// encoding_conversion.cpp:
// SEXP stri_encode_from_marked(SEXP str, SEXP to, SEXP to_raw); // internal
// test.cpp /* internal, but in namespace: for testing */
SEXP stri_test_Rmark(SEXP str);
SEXP stri_test_UnicodeContainer16(SEXP str);
SEXP stri_test_UnicodeContainer16b(SEXP str);
SEXP stri_test_UnicodeContainer8(SEXP str);
SEXP stri_test_returnasis(SEXP x);
#endif