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/core/rstring.h"
|
||||||
#include "ruby/internal/value_type.h"
|
#include "ruby/internal/value_type.h"
|
||||||
|
|
||||||
#define RB_NUM2CHR rb_num2char_inline
|
#define RB_NUM2CHR rb_num2char_inline /**< @alias{rb_num2char_inline} */
|
||||||
#define NUM2CHR RB_NUM2CHR
|
#define NUM2CHR RB_NUM2CHR /**< @old{RB_NUM2CHR} */
|
||||||
#define CHR2FIX RB_CHR2FIX
|
#define CHR2FIX RB_CHR2FIX /**< @old{RB_CHR2FIX} */
|
||||||
|
|
||||||
/** @cond INTERNAL_MACRO */
|
/** @cond INTERNAL_MACRO */
|
||||||
#define RB_CHR2FIX RB_CHR2FIX
|
#define RB_CHR2FIX RB_CHR2FIX
|
||||||
|
@ -40,12 +40,35 @@
|
||||||
RBIMPL_ATTR_CONST_UNLESS_DEBUG()
|
RBIMPL_ATTR_CONST_UNLESS_DEBUG()
|
||||||
RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)
|
RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)
|
||||||
RBIMPL_ATTR_ARTIFICIAL()
|
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
|
static inline VALUE
|
||||||
RB_CHR2FIX(unsigned char c)
|
RB_CHR2FIX(unsigned char c)
|
||||||
{
|
{
|
||||||
return RB_INT2FIX(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
|
static inline char
|
||||||
rb_num2char_inline(VALUE x)
|
rb_num2char_inline(VALUE x)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue