| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- /*
- * Copyright (C) 2019 Intel Corporation. All rights reserved.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- */
- #ifndef _STRING_OBJECT_H_
- #define _STRING_OBJECT_H_
- #include "wasm.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef enum EncodingFlag {
- UTF8,
- WTF8,
- WTF16,
- LOSSY_UTF8,
- } EncodingFlag;
- typedef enum StringViewType {
- STRING_VIEW_WTF8,
- STRING_VIEW_WTF16,
- STRING_VIEW_ITER,
- } StringViewType;
- typedef enum ErrorCode {
- Insufficient_Space = -3,
- Encode_Fail = -2,
- Isolated_Surrogate = -1,
- } ErrorCode;
- /******************* gc finalizer *****************/
- void
- wasm_string_destroy(WASMString str_obj);
- /******************* opcode functions *****************/
- /* string.const */
- WASMString
- wasm_string_new_const(const char *content, uint32 length);
- /* string.new_xx8/new_wtf16 */
- /* string.new_xx8_array */
- /* string.new_wtf16_array */
- WASMString
- wasm_string_new_with_encoding(void *addr, uint32 count, EncodingFlag flag);
- /* string.measure */
- int32
- wasm_string_measure(WASMString str_obj, EncodingFlag flag);
- /* stringview_wtf16.length */
- int32
- wasm_string_wtf16_get_length(WASMString str_obj);
- /* string.encode_xx8 */
- /* string.encode_wtf16 */
- /* stringview_wtf8.encode_xx */
- /* stringview_wtf16.encode */
- /* string.encode_xx8_array */
- /* string.encode_wtf16_array */
- int32
- wasm_string_encode(WASMString str_obj, uint32 pos, uint32 count, void *addr,
- uint32 *next_pos, EncodingFlag flag);
- /* string.concat */
- WASMString
- wasm_string_concat(WASMString str_obj1, WASMString str_obj2);
- /* string.eq */
- int32
- wasm_string_eq(WASMString str_obj1, WASMString str_obj2);
- /* string.is_usv_sequence */
- int32
- wasm_string_is_usv_sequence(WASMString str_obj);
- /* string.as_wtf8 */
- /* string.as_wtf16 */
- /* string.as_iter */
- WASMString
- wasm_string_create_view(WASMString str_obj, StringViewType type);
- /* stringview_wtf8.advance */
- /* stringview_iter.advance */
- int32
- wasm_string_advance(WASMString str_obj, uint32 pos, uint32 count,
- uint32 *target_pos);
- /* stringview_wtf8.slice */
- /* stringview_wtf16.slice */
- /* stringview_iter.slice */
- WASMString
- wasm_string_slice(WASMString str_obj, uint32 start, uint32 end,
- StringViewType type);
- /* stringview_wtf16.get_codeunit */
- int16
- wasm_string_get_wtf16_codeunit(WASMString str_obj, int32 pos);
- /* stringview_iter.next */
- uint32
- wasm_string_next_codepoint(WASMString str_obj, uint32 pos);
- /* stringview_iter.rewind */
- uint32
- wasm_string_rewind(WASMString str_obj, uint32 pos, uint32 count,
- uint32 *target_pos);
- /******************* application functions *****************/
- void
- wasm_string_dump(WASMString str_obj);
- #ifdef __cplusplus
- } /* end of extern "C" */
- #endif
- #endif /* end of _STRING_OBJECT_H_ */
|