use crate::rubysys::types::{c_int, c_long, Value};
#[cfg_attr(rutie_dllimport, link(name = "rutie_ruby"))]
extern "C" {
pub static rb_cRange: Value;
}
#[cfg_attr(rutie_dllimport, link(name = "rutie_ruby"))]
extern "C" {
pub fn rb_range_beg_len(
range: Value,
begin: *mut c_long,
length: *mut c_long,
total: c_long,
err: c_int,
) -> Value;
pub fn rb_range_new(begin: Value, end: Value, exclude_end: c_int) -> Value;
pub fn rb_range_values(
range: Value,
begin: *mut Value,
end: *mut Value,
exclude_end: *mut c_int,
) -> c_int;
}
#[cfg(ruby_gte_2_6)]
#[repr(C)]
pub struct ArithmeticSequenceComponents {
pub begin: Value,
pub end: Value,
pub step: Value,
pub exclude_end: c_int,
}
#[cfg(ruby_gte_2_6)]
#[cfg_attr(rutie_dllimport, link(name = "rutie_ruby"))]
extern "C" {
pub fn rb_arithmetic_sequence_extract(
object: Value,
components: *mut ArithmeticSequenceComponents,
) -> c_int;
}