Ruby 3.2.1p31 (2023-02-08 revision 31819e82c88c6f8ecfaeb162519bfa26a14b21fd)
|
Routines to manipulate encodings of symbols. More...
#include "ruby/internal/attr/nonnull.h"
#include "ruby/internal/dllexport.h"
#include "ruby/internal/encoding/encoding.h"
#include "ruby/internal/value.h"
Go to the source code of this file.
Functions | |
ID | rb_intern3 (const char *name, long len, rb_encoding *enc) |
Identical to rb_intern2(), except it additionally takes an encoding. | |
int | rb_enc_symname_p (const char *str, rb_encoding *enc) |
Identical to rb_symname_p(), except it additionally takes an encoding. | |
int | rb_enc_symname2_p (const char *name, long len, rb_encoding *enc) |
Identical to rb_enc_symname_p(), except it additionally takes the passed string's length. | |
ID | rb_check_id_cstr (const char *ptr, long len, rb_encoding *enc) |
Identical to rb_check_id(), except it takes a pointer to a memory region instead of Ruby's string. | |
VALUE | rb_check_symbol_cstr (const char *ptr, long len, rb_encoding *enc) |
Identical to rb_check_id_cstr(), except for the return type. | |
Routines to manipulate encodings of symbols.
RBIMPL
or rbimpl
are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will. __VA_ARGS__
is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98. Definition in file symbol.h.
ID rb_check_id_cstr | ( | const char * | ptr, |
long | len, | ||
rb_encoding * | enc | ||
) |
Identical to rb_check_id(), except it takes a pointer to a memory region instead of Ruby's string.
[in] | ptr | A pointer to a memory region. |
[in] | len | Number of bytes of ptr . |
[in] | enc | Encoding of ptr . |
rb_eEncodingError | `ptr` contains non-ASCII according to `enc`. |
0 | No such id ever existed in the history. |
otherwise | The id that represents the given name. |
Definition at line 1180 of file symbol.c.
Referenced by rb_check_id_cstr(), rb_deprecate_constant(), rb_iv_get(), and rb_path_to_class().
VALUE rb_check_symbol_cstr | ( | const char * | ptr, |
long | len, | ||
rb_encoding * | enc | ||
) |
Identical to rb_check_id_cstr(), except for the return type.
It can also be seen as a routine identical to rb_check_symbol(), except it takes a pointer to a memory region instead of Ruby's string.
[in] | ptr | A pointer to a memory region. |
[in] | len | Number of bytes of ptr . |
[in] | enc | Encoding of ptr . |
rb_eEncodingError | `ptr` contains non-ASCII according to `enc`. |
RUBY_Qnil | No such id ever existed in the history. |
otherwise | The id that represents the given name. |
Definition at line 1191 of file symbol.c.
Referenced by rb_check_symbol_cstr(), and rb_str_format().
int rb_enc_symname2_p | ( | const char * | name, |
long | len, | ||
rb_encoding * | enc | ||
) |
Identical to rb_enc_symname_p(), except it additionally takes the passed string's length.
This is needed for strings containing NUL bytes, like in case of UTF-32.
[in] | name | A C string to check. |
[in] | len | Number of bytes of str . |
[in] | enc | str 's encoding. |
1 | It is a valid symbol name. |
0 | It is invalid as a symbol name. |
Definition at line 407 of file symbol.c.
Referenced by rb_enc_symname2_p(), and rb_enc_symname_p().
int rb_enc_symname_p | ( | const char * | str, |
rb_encoding * | enc | ||
) |
Identical to rb_symname_p(), except it additionally takes an encoding.
[in] | str | A C string to check. |
[in] | enc | str 's encoding. |
1 | It is a valid symbol name. |
0 | It is invalid as a symbol name. |
Definition at line 204 of file symbol.c.
Referenced by rb_symname_p().
ID rb_intern3 | ( | const char * | name, |
long | len, | ||
rb_encoding * | enc | ||
) |
Identical to rb_intern2(), except it additionally takes an encoding.
[in] | name | The name of the id. |
[in] | len | Length of name . |
[in] | enc | name 's encoding. |
rb_eRuntimeError | Too many symbols. |
Definition at line 718 of file symbol.c.
Referenced by rb_intern2(), and rb_intern3().