Ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e0ba6b95ab71a441357ed5484e33498)
hash.h
Go to the documentation of this file.
1#ifndef RBIMPL_INTERN_HASH_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_INTERN_HASH_H
25#include "ruby/internal/value.h"
26#include "ruby/st.h"
27
29
30/* hash.c */
31
48void rb_st_foreach_safe(struct st_table *st, st_foreach_callback_func *func, st_data_t arg);
49
51#define st_foreach_safe rb_st_foreach_safe
52
70VALUE rb_check_hash_type(VALUE obj);
71
83void rb_hash_foreach(VALUE hash, int (*func)(VALUE key, VALUE val, VALUE arg), VALUE arg);
84
100VALUE rb_hash(VALUE obj);
101
107VALUE rb_hash_new(void);
108
116VALUE rb_hash_dup(VALUE hash);
117
119VALUE rb_hash_freeze(VALUE obj);
120
131VALUE rb_hash_aref(VALUE hash, VALUE key);
132
145VALUE rb_hash_lookup(VALUE hash, VALUE key);
146
170VALUE rb_hash_lookup2(VALUE hash, VALUE key, VALUE def);
171
182VALUE rb_hash_fetch(VALUE hash, VALUE key);
183
197VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val);
198
207VALUE rb_hash_clear(VALUE hash);
208
218VALUE rb_hash_delete_if(VALUE hash);
219
229VALUE rb_hash_delete(VALUE hash, VALUE key);
230
248void rb_hash_bulk_insert(long argc, const VALUE *argv, VALUE hash);
249
258typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value);
259
274VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func);
275
276/* file.c */
277
286int rb_path_check(const char *path);
287
288/* hash.c */
289
297int rb_env_path_tainted(void);
298
305VALUE rb_env_clear(void);
306
314VALUE rb_hash_size(VALUE hash);
315
317
318#endif /* RBIMPL_INTERN_HASH_H */
Tweaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition: dllexport.h:106
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition: dllexport.h:97
VALUE rb_hash_size(VALUE hash)
Identical to RHASH_SIZE(), except it returns the size in Ruby's integer instead of C's.
Definition: hash.c:2975
void rb_hash_bulk_insert(long argc, const VALUE *argv, VALUE hash)
Inserts a list of key-value pairs into a hash table at once.
Definition: hash.c:4753
void rb_hash_foreach(VALUE hash, int(*func)(VALUE key, VALUE val, VALUE arg), VALUE arg)
Iterates over a hash.
VALUE rb_check_hash_type(VALUE obj)
Try converting an object to its hash representation using its to_hash method, if any.
Definition: hash.c:1896
void rb_st_foreach_safe(struct st_table *st, st_foreach_callback_func *func, st_data_t arg)
Identical to rb_st_foreach(), except it raises exceptions when the callback function tampers the tabl...
VALUE rb_hash_lookup2(VALUE hash, VALUE key, VALUE def)
Identical to rb_hash_lookup(), except you can specify what to return on misshits.
Definition: hash.c:2095
int rb_path_check(const char *path)
This function is mysterious.
Definition: file.c:6347
VALUE rb_hash_freeze(VALUE obj)
Just another name of rb_obj_freeze.
Definition: hash.c:87
VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value)
Type of callback functions to pass to rb_hash_update_by().
Definition: hash.h:258
int rb_env_path_tainted(void)
Definition: hash.c:5038
VALUE rb_hash_delete(VALUE hash, VALUE key)
Deletes the passed key from the passed hash table, if any.
Definition: hash.c:2362
VALUE rb_hash_fetch(VALUE hash, VALUE key)
Identical to rb_hash_lookup(), except it yields the (implicitly) passed block instead of returning RU...
Definition: hash.c:2173
VALUE rb_hash_delete_if(VALUE hash)
Deletes each entry for which the block returns a truthy value.
Definition: hash.c:2525
VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func)
Destructively merges two hash tables into one.
Definition: hash.c:4010
VALUE rb_hash_aref(VALUE hash, VALUE key)
Queries the given key in the given hash table.
Definition: hash.c:2082
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
Inserts or replaces ("upsert"s) the objects into the given hash table.
Definition: hash.c:2903
VALUE rb_env_clear(void)
Destructively removes every environment variables of the running process.
Definition: hash.c:5888
VALUE rb_hash_lookup(VALUE hash, VALUE key)
Identical to rb_hash_aref(), except it always returns RUBY_Qnil for misshits.
Definition: hash.c:2108
VALUE rb_hash_dup(VALUE hash)
Duplicates a hash.
Definition: hash.c:1585
VALUE rb_hash(VALUE obj)
Calculates a message authentication code of the passed object.
Definition: hash.c:227
VALUE rb_hash_clear(VALUE hash)
Swipes everything out of the passed hash table.
Definition: hash.c:2829
VALUE rb_hash_new(void)
Creates a new, empty hash object.
Definition: hash.c:1529
Defines RBIMPL_ATTR_NONNULL.
#define RBIMPL_ATTR_NONNULL(list)
Wraps (or simulates) __attribute__((nonnull))
Definition: nonnull.h:27
Defines VALUE and ID.