1 #ifndef INTERNAL_PROC_H /*-*-C-*-vi:se ft=c:*/
2 #define INTERNAL_PROC_H
4 * @author Ruby developers <ruby-core@ruby-lang.org>
5 * @copyright This file is a part of the programming language Ruby.
6 * Permission is hereby granted, to either redistribute and/or
7 * modify this file, provided that the conditions mentioned in the
8 * file COPYING are met. Consult the file for details.
9 * @brief Internal header for Proc.
11 #include "ruby/ruby.h" /* for rb_block_call_func_t */
12 #include "ruby/st.h" /* for st_index_t */
13 struct rb_block
; /* in vm_core.h */
14 struct rb_iseq_struct
; /* in vm_core.h */
17 VALUE
rb_proc_location(VALUE self
);
18 st_index_t
rb_hash_proc(st_index_t hash
, VALUE proc
);
19 int rb_block_pair_yield_optimizable(void);
20 int rb_block_arity(void);
21 int rb_block_min_max_arity(int *max
);
22 VALUE
rb_block_to_s(VALUE self
, const struct rb_block
*block
, const char *additional_info
);
23 VALUE
rb_callable_receiver(VALUE
);
25 VALUE
rb_func_proc_new(rb_block_call_func_t func
, VALUE val
);
26 VALUE
rb_func_lambda_new(rb_block_call_func_t func
, VALUE val
, int min_argc
, int max_argc
);
27 VALUE
rb_iseq_location(const struct rb_iseq_struct
*iseq
);
28 VALUE
rb_sym_to_proc(VALUE sym
);
30 #endif /* INTERNAL_PROC_H */