Ruby 3.3.7p123 (2025-01-15 revision be31f993d7fa0219d85f7b3c694d454da4ecc10b)
array.h
Go to the documentation of this file.
1#ifndef RBIMPL_INTERN_ARRAY_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_INTERN_ARRAY_H
28#include "ruby/internal/value.h"
29
31
32/* array.c */
33
43void rb_mem_clear(VALUE *buf, long len)
45 ;
46
56VALUE rb_assoc_new(VALUE car, VALUE cdr);
57
70VALUE rb_check_array_type(VALUE obj);
71
77VALUE rb_ary_new(void);
78
89VALUE rb_ary_new_capa(long capa);
90
98VALUE rb_ary_new_from_args(long n, ...);
99
107VALUE rb_ary_new_from_values(long n, const VALUE *elts);
108
116VALUE rb_ary_hidden_new(long capa);
117#define rb_ary_tmp_new rb_ary_hidden_new
118
134void rb_ary_free(VALUE ary);
135
145void rb_ary_modify(VALUE ary);
146
149
166VALUE rb_ary_shared_with_p(VALUE lhs, VALUE rhs);
167
194VALUE rb_ary_aref(int argc, const VALUE *argv, VALUE ary);
195
208VALUE rb_ary_subseq(VALUE ary, long beg, long len);
209
225void rb_ary_store(VALUE ary, long key, VALUE val);
226
238VALUE rb_ary_dup(VALUE ary);
239
248VALUE rb_ary_resurrect(VALUE ary);
249
261VALUE rb_ary_to_ary(VALUE obj);
262
272VALUE rb_ary_to_s(VALUE ary);
273
285VALUE rb_ary_cat(VALUE ary, const VALUE *train, long len);
286
296VALUE rb_ary_push(VALUE ary, VALUE elem);
297
310VALUE rb_ary_pop(VALUE ary);
311
327VALUE rb_ary_shift(VALUE ary);
328
340VALUE rb_ary_unshift(VALUE ary, VALUE elem);
341
353VALUE rb_ary_entry(VALUE ary, long off);
354
364VALUE rb_ary_each(VALUE ary);
365
379VALUE rb_ary_join(VALUE ary, VALUE sep);
380
390VALUE rb_ary_reverse(VALUE ary);
391
404VALUE rb_ary_rotate(VALUE ary, long rot);
405
417VALUE rb_ary_sort(VALUE ary);
418
431VALUE rb_ary_sort_bang(VALUE ary);
432
454VALUE rb_ary_delete(VALUE ary, VALUE elem);
455
469VALUE rb_ary_delete_at(VALUE ary, long pos);
470
479VALUE rb_ary_clear(VALUE ary);
480
498VALUE rb_ary_plus(VALUE lhs, VALUE rhs);
499
511VALUE rb_ary_concat(VALUE lhs, VALUE rhs);
512
546VALUE rb_ary_assoc(VALUE alist, VALUE key);
547
558VALUE rb_ary_rassoc(VALUE alist, VALUE key);
559
576VALUE rb_ary_includes(VALUE ary, VALUE elem);
577
588VALUE rb_ary_cmp(VALUE lhs, VALUE rhs);
589
601VALUE rb_ary_replace(VALUE copy, VALUE orig);
602
630VALUE rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func)(VALUE obj, long oidx));
631
649VALUE rb_ary_resize(VALUE ary, long len);
650
651#define rb_ary_new2 rb_ary_new_capa
652#define rb_ary_new3 rb_ary_new_from_args
653#define rb_ary_new4 rb_ary_new_from_values
654
656
657#endif /* RBIMPL_INTERN_ARRAY_H */
Tweaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition dllexport.h:74
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition dllexport.h:65
void rb_ary_free(VALUE ary)
Destroys the given array for no reason.
Definition array.c:858
void rb_ary_modify(VALUE ary)
Declares that the array is about to be modified.
Definition array.c:570
VALUE rb_ary_freeze(VALUE obj)
Just another name of rb_obj_freeze.
Definition array.c:639
int capa
Designed capacity of the buffer.
Definition io.h:11
int off
Offset inside of ptr.
Definition io.h:5
int len
Length of the buffer.
Definition io.h:8
Defines RBIMPL_ATTR_NOALIAS.
#define RBIMPL_ATTR_NOALIAS()
Wraps (or simulates) __declspec((noalias))
Definition noalias.h:66
Defines RBIMPL_ATTR_NOEXCEPT.
#define RBIMPL_ATTR_NOEXCEPT(_)
Wraps (or simulates) C++11 noexcept
Definition noexcept.h:85
Defines RBIMPL_ATTR_NONNULL.
#define RBIMPL_ATTR_NONNULL(list)
Wraps (or simulates) __attribute__((nonnull))
Definition nonnull.h:30
Defines RBIMPL_ATTR_PURE.
#define RBIMPL_ATTR_PURE()
Wraps (or simulates) __attribute__((pure))
Definition pure.h:33
Defines VALUE and ID.
uintptr_t VALUE
Type that represents a Ruby object.
Definition value.h:40