Ruby 3.4.5p51 (2025-07-16 revision 20cda200d3ce092571d0b5d342dadca69636cb0f)
|
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.
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 1216 of file symbol.c.
Referenced by 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 1227 of file symbol.c.
Referenced by 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 415 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 212 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. |