mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
include/ruby/internal/arithmetic/char.h: add doxygen
Must not be a bad idea to improve documents. [ci skip]
This commit is contained in:
parent
6e62cf46ed
commit
9eab1e9107
Notes:
git
2021-09-10 20:01:18 +09:00
1 changed files with 26 additions and 3 deletions
|
@ -29,9 +29,9 @@
|
|||
#include "ruby/internal/core/rstring.h"
|
||||
#include "ruby/internal/value_type.h"
|
||||
|
||||
#define RB_NUM2CHR rb_num2char_inline
|
||||
#define NUM2CHR RB_NUM2CHR
|
||||
#define CHR2FIX RB_CHR2FIX
|
||||
#define RB_NUM2CHR rb_num2char_inline /**< @alias{rb_num2char_inline} */
|
||||
#define NUM2CHR RB_NUM2CHR /**< @old{RB_NUM2CHR} */
|
||||
#define CHR2FIX RB_CHR2FIX /**< @old{RB_CHR2FIX} */
|
||||
|
||||
/** @cond INTERNAL_MACRO */
|
||||
#define RB_CHR2FIX RB_CHR2FIX
|
||||
|
@ -40,12 +40,35 @@
|
|||
RBIMPL_ATTR_CONST_UNLESS_DEBUG()
|
||||
RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)
|
||||
RBIMPL_ATTR_ARTIFICIAL()
|
||||
/**
|
||||
* Converts a C's `unsigned char` into an instance of ::rb_cInteger.
|
||||
*
|
||||
* @param[in] c Arbitrary `unsigned char` value.
|
||||
* @return An instance of ::rb_cInteger.
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* Nobody explicitly states this but in Ruby, a char means an unsigned integer
|
||||
* value of range 0..255. This is a general principle. AFAIK there is no
|
||||
* single line of code where char is signed.
|
||||
*/
|
||||
static inline VALUE
|
||||
RB_CHR2FIX(unsigned char c)
|
||||
{
|
||||
return RB_INT2FIX(c);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an instance of ::rb_cNumeric into C's `char`. At the same time it
|
||||
* accepts a String of more than one character, and returns its first byte. In
|
||||
* the early days there was a Ruby level "character" literal `?c`, which
|
||||
* roughly worked this way.
|
||||
*
|
||||
* @param[in] x Either a string or a numeric.
|
||||
* @exception rb_eTypeError `x` is not a numeric.
|
||||
* @exception rb_eRangeError `x` is out of range of `unsigned int`.
|
||||
* @return The passed value converted into C's `char`.
|
||||
*/
|
||||
static inline char
|
||||
rb_num2char_inline(VALUE x)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue