// // Dump_Series: C // void Dump_Series(REBSER *series, const char *memo) { if (!series) return; Debug_Fmt( "%s Series %x \"%s\":" " wide: %2d" " size: %6d" " bias: %d" " tail: %d" " rest: %d" " flags: %x", memo, series, "-", // !label SER_WIDE(series), SER_TOTAL(series), SER_BIAS(series), SER_LEN(series), SER_REST(series), series->info.bits // flags + width ); if (Is_Array_Series(series)) { Dump_Values(ARR_HEAD(AS_ARRAY(series)), SER_LEN(series)); } else Dump_Bytes( SER_DATA_RAW(series), (SER_LEN(series) + 1) * SER_WIDE(series) ); }
// // RL_Series: C // // Get series information. // // Returns: // Returns information related to a series. // Arguments: // series - any series pointer (string or block) // what - indicates what information to return (see RXI_SER enum) // Notes: // Invalid what arg nums will return zero. // RL_API REBUPT RL_Series(REBSER *series, REBCNT what) { switch (what) { case RXI_SER_DATA: return cast(REBUPT, SER_DATA_RAW(series)); case RXI_SER_TAIL: return SER_LEN(series); case RXI_SER_LEFT: return SER_AVAIL(series); case RXI_SER_SIZE: return SER_REST(series); case RXI_SER_WIDE: return SER_WIDE(series); } return 0; }