mbed I/F binding for mruby

Dependents:   mruby_mbed_web mirb_mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers range.h Source File

range.h

00001 /*
00002 ** mruby/range.h - Range class
00003 **
00004 ** See Copyright Notice in mruby.h
00005 */
00006 
00007 #ifndef MRUBY_RANGE_H
00008 #define MRUBY_RANGE_H
00009 
00010 #if defined(__cplusplus)
00011 extern "C" {
00012 #endif
00013 
00014 typedef struct mrb_range_edges {
00015   mrb_value beg;
00016   mrb_value end;
00017 } mrb_range_edges;
00018 
00019 struct RRange {
00020   MRB_OBJECT_HEADER;
00021   mrb_range_edges *edges;
00022   mrb_bool excl : 1;
00023 };
00024 
00025 #define mrb_range_ptr(v)    ((struct RRange*)(mrb_ptr(v)))
00026 #define mrb_range_value(p)  mrb_obj_value((void*)(p))
00027 
00028 MRB_API mrb_value mrb_range_new(mrb_state*, mrb_value, mrb_value, mrb_bool);
00029 MRB_API mrb_bool mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp, mrb_int len);
00030 mrb_value mrb_get_values_at(mrb_state *mrb, mrb_value obj, mrb_int olen, mrb_int argc, const mrb_value *argv, mrb_value (*func)(mrb_state*, mrb_value, mrb_int));
00031 
00032 #if defined(__cplusplus)
00033 }  /* extern "C" { */
00034 #endif
00035 
00036 #endif  /* MRUBY_RANGE_H */
00037