xref: /PHP-8.4/ext/bcmath/bcmath_arginfo.h (revision f6db576c)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: 687d6fb392a9b0c1329152cc0f62341a73e427f4 */
3 
4 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcadd, 0, 2, IS_STRING, 0)
5 	ZEND_ARG_TYPE_INFO(0, num1, IS_STRING, 0)
6 	ZEND_ARG_TYPE_INFO(0, num2, IS_STRING, 0)
7 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
8 ZEND_END_ARG_INFO()
9 
10 #define arginfo_bcsub arginfo_bcadd
11 
12 #define arginfo_bcmul arginfo_bcadd
13 
14 #define arginfo_bcdiv arginfo_bcadd
15 
16 #define arginfo_bcmod arginfo_bcadd
17 
18 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcdivmod, 0, 2, IS_ARRAY, 0)
19 	ZEND_ARG_TYPE_INFO(0, num1, IS_STRING, 0)
20 	ZEND_ARG_TYPE_INFO(0, num2, IS_STRING, 0)
21 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
22 ZEND_END_ARG_INFO()
23 
24 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcpowmod, 0, 3, IS_STRING, 0)
25 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
26 	ZEND_ARG_TYPE_INFO(0, exponent, IS_STRING, 0)
27 	ZEND_ARG_TYPE_INFO(0, modulus, IS_STRING, 0)
28 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
29 ZEND_END_ARG_INFO()
30 
31 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcpow, 0, 2, IS_STRING, 0)
32 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
33 	ZEND_ARG_TYPE_INFO(0, exponent, IS_STRING, 0)
34 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
35 ZEND_END_ARG_INFO()
36 
37 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcsqrt, 0, 1, IS_STRING, 0)
38 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
39 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
40 ZEND_END_ARG_INFO()
41 
42 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bccomp, 0, 2, IS_LONG, 0)
43 	ZEND_ARG_TYPE_INFO(0, num1, IS_STRING, 0)
44 	ZEND_ARG_TYPE_INFO(0, num2, IS_STRING, 0)
45 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
46 ZEND_END_ARG_INFO()
47 
48 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcscale, 0, 0, IS_LONG, 0)
49 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
50 ZEND_END_ARG_INFO()
51 
52 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcfloor, 0, 1, IS_STRING, 0)
53 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
54 ZEND_END_ARG_INFO()
55 
56 #define arginfo_bcceil arginfo_bcfloor
57 
58 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcround, 0, 1, IS_STRING, 0)
59 	ZEND_ARG_TYPE_INFO(0, num, IS_STRING, 0)
60 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, precision, IS_LONG, 0, "0")
61 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, mode, RoundingMode, 0, "RoundingMode::HalfAwayFromZero")
62 ZEND_END_ARG_INFO()
63 
64 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_BcMath_Number___construct, 0, 0, 1)
65 	ZEND_ARG_TYPE_MASK(0, num, MAY_BE_STRING|MAY_BE_LONG, NULL)
66 ZEND_END_ARG_INFO()
67 
68 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_add, 0, 1, BcMath\\\116umber, 0)
69 	ZEND_ARG_OBJ_TYPE_MASK(0, num, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
70 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
71 ZEND_END_ARG_INFO()
72 
73 #define arginfo_class_BcMath_Number_sub arginfo_class_BcMath_Number_add
74 
75 #define arginfo_class_BcMath_Number_mul arginfo_class_BcMath_Number_add
76 
77 #define arginfo_class_BcMath_Number_div arginfo_class_BcMath_Number_add
78 
79 #define arginfo_class_BcMath_Number_mod arginfo_class_BcMath_Number_add
80 
81 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_BcMath_Number_divmod, 0, 1, IS_ARRAY, 0)
82 	ZEND_ARG_OBJ_TYPE_MASK(0, num, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
83 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
84 ZEND_END_ARG_INFO()
85 
86 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_powmod, 0, 2, BcMath\\\116umber, 0)
87 	ZEND_ARG_OBJ_TYPE_MASK(0, exponent, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
88 	ZEND_ARG_OBJ_TYPE_MASK(0, modulus, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
89 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
90 ZEND_END_ARG_INFO()
91 
92 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_pow, 0, 1, BcMath\\\116umber, 0)
93 	ZEND_ARG_OBJ_TYPE_MASK(0, exponent, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
94 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
95 ZEND_END_ARG_INFO()
96 
97 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_sqrt, 0, 0, BcMath\\\116umber, 0)
98 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
99 ZEND_END_ARG_INFO()
100 
101 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_floor, 0, 0, BcMath\\\116umber, 0)
102 ZEND_END_ARG_INFO()
103 
104 #define arginfo_class_BcMath_Number_ceil arginfo_class_BcMath_Number_floor
105 
106 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_BcMath_Number_round, 0, 0, BcMath\\\116umber, 0)
107 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, precision, IS_LONG, 0, "0")
108 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, mode, RoundingMode, 0, "RoundingMode::HalfAwayFromZero")
109 ZEND_END_ARG_INFO()
110 
111 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_BcMath_Number_compare, 0, 1, IS_LONG, 0)
112 	ZEND_ARG_OBJ_TYPE_MASK(0, num, BcMath\\\116umber, MAY_BE_STRING|MAY_BE_LONG, NULL)
113 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, scale, IS_LONG, 1, "null")
114 ZEND_END_ARG_INFO()
115 
116 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_BcMath_Number___toString, 0, 0, IS_STRING, 0)
117 ZEND_END_ARG_INFO()
118 
119 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_BcMath_Number___serialize, 0, 0, IS_ARRAY, 0)
120 ZEND_END_ARG_INFO()
121 
122 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_BcMath_Number___unserialize, 0, 1, IS_VOID, 0)
123 	ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0)
124 ZEND_END_ARG_INFO()
125 
126 ZEND_FUNCTION(bcadd);
127 ZEND_FUNCTION(bcsub);
128 ZEND_FUNCTION(bcmul);
129 ZEND_FUNCTION(bcdiv);
130 ZEND_FUNCTION(bcmod);
131 ZEND_FUNCTION(bcdivmod);
132 ZEND_FUNCTION(bcpowmod);
133 ZEND_FUNCTION(bcpow);
134 ZEND_FUNCTION(bcsqrt);
135 ZEND_FUNCTION(bccomp);
136 ZEND_FUNCTION(bcscale);
137 ZEND_FUNCTION(bcfloor);
138 ZEND_FUNCTION(bcceil);
139 ZEND_FUNCTION(bcround);
140 ZEND_METHOD(BcMath_Number, __construct);
141 ZEND_METHOD(BcMath_Number, add);
142 ZEND_METHOD(BcMath_Number, sub);
143 ZEND_METHOD(BcMath_Number, mul);
144 ZEND_METHOD(BcMath_Number, div);
145 ZEND_METHOD(BcMath_Number, mod);
146 ZEND_METHOD(BcMath_Number, divmod);
147 ZEND_METHOD(BcMath_Number, powmod);
148 ZEND_METHOD(BcMath_Number, pow);
149 ZEND_METHOD(BcMath_Number, sqrt);
150 ZEND_METHOD(BcMath_Number, floor);
151 ZEND_METHOD(BcMath_Number, ceil);
152 ZEND_METHOD(BcMath_Number, round);
153 ZEND_METHOD(BcMath_Number, compare);
154 ZEND_METHOD(BcMath_Number, __toString);
155 ZEND_METHOD(BcMath_Number, __serialize);
156 ZEND_METHOD(BcMath_Number, __unserialize);
157 
158 static const zend_function_entry ext_functions[] = {
159 	ZEND_FE(bcadd, arginfo_bcadd)
160 	ZEND_FE(bcsub, arginfo_bcsub)
161 	ZEND_FE(bcmul, arginfo_bcmul)
162 	ZEND_FE(bcdiv, arginfo_bcdiv)
163 	ZEND_FE(bcmod, arginfo_bcmod)
164 	ZEND_FE(bcdivmod, arginfo_bcdivmod)
165 	ZEND_FE(bcpowmod, arginfo_bcpowmod)
166 	ZEND_FE(bcpow, arginfo_bcpow)
167 	ZEND_FE(bcsqrt, arginfo_bcsqrt)
168 	ZEND_FE(bccomp, arginfo_bccomp)
169 	ZEND_FE(bcscale, arginfo_bcscale)
170 	ZEND_FE(bcfloor, arginfo_bcfloor)
171 	ZEND_FE(bcceil, arginfo_bcceil)
172 	ZEND_FE(bcround, arginfo_bcround)
173 	ZEND_FE_END
174 };
175 
176 static const zend_function_entry class_BcMath_Number_methods[] = {
177 	ZEND_ME(BcMath_Number, __construct, arginfo_class_BcMath_Number___construct, ZEND_ACC_PUBLIC)
178 	ZEND_ME(BcMath_Number, add, arginfo_class_BcMath_Number_add, ZEND_ACC_PUBLIC)
179 	ZEND_ME(BcMath_Number, sub, arginfo_class_BcMath_Number_sub, ZEND_ACC_PUBLIC)
180 	ZEND_ME(BcMath_Number, mul, arginfo_class_BcMath_Number_mul, ZEND_ACC_PUBLIC)
181 	ZEND_ME(BcMath_Number, div, arginfo_class_BcMath_Number_div, ZEND_ACC_PUBLIC)
182 	ZEND_ME(BcMath_Number, mod, arginfo_class_BcMath_Number_mod, ZEND_ACC_PUBLIC)
183 	ZEND_ME(BcMath_Number, divmod, arginfo_class_BcMath_Number_divmod, ZEND_ACC_PUBLIC)
184 	ZEND_ME(BcMath_Number, powmod, arginfo_class_BcMath_Number_powmod, ZEND_ACC_PUBLIC)
185 	ZEND_ME(BcMath_Number, pow, arginfo_class_BcMath_Number_pow, ZEND_ACC_PUBLIC)
186 	ZEND_ME(BcMath_Number, sqrt, arginfo_class_BcMath_Number_sqrt, ZEND_ACC_PUBLIC)
187 	ZEND_ME(BcMath_Number, floor, arginfo_class_BcMath_Number_floor, ZEND_ACC_PUBLIC)
188 	ZEND_ME(BcMath_Number, ceil, arginfo_class_BcMath_Number_ceil, ZEND_ACC_PUBLIC)
189 	ZEND_ME(BcMath_Number, round, arginfo_class_BcMath_Number_round, ZEND_ACC_PUBLIC)
190 	ZEND_ME(BcMath_Number, compare, arginfo_class_BcMath_Number_compare, ZEND_ACC_PUBLIC)
191 	ZEND_ME(BcMath_Number, __toString, arginfo_class_BcMath_Number___toString, ZEND_ACC_PUBLIC)
192 	ZEND_ME(BcMath_Number, __serialize, arginfo_class_BcMath_Number___serialize, ZEND_ACC_PUBLIC)
193 	ZEND_ME(BcMath_Number, __unserialize, arginfo_class_BcMath_Number___unserialize, ZEND_ACC_PUBLIC)
194 	ZEND_FE_END
195 };
196 
register_class_BcMath_Number(zend_class_entry * class_entry_Stringable)197 static zend_class_entry *register_class_BcMath_Number(zend_class_entry *class_entry_Stringable)
198 {
199 	zend_class_entry ce, *class_entry;
200 
201 	INIT_NS_CLASS_ENTRY(ce, "BcMath", "Number", class_BcMath_Number_methods);
202 	class_entry = zend_register_internal_class_with_flags(&ce, NULL, ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_READONLY_CLASS);
203 	zend_class_implements(class_entry, 1, class_entry_Stringable);
204 
205 	zval property_value_default_value;
206 	ZVAL_UNDEF(&property_value_default_value);
207 	zend_string *property_value_name = zend_string_init("value", sizeof("value") - 1, 1);
208 	zend_declare_typed_property(class_entry, property_value_name, &property_value_default_value, ZEND_ACC_PUBLIC|ZEND_ACC_READONLY|ZEND_ACC_VIRTUAL, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
209 	zend_string_release(property_value_name);
210 
211 	zval property_scale_default_value;
212 	ZVAL_UNDEF(&property_scale_default_value);
213 	zend_string *property_scale_name = zend_string_init("scale", sizeof("scale") - 1, 1);
214 	zend_declare_typed_property(class_entry, property_scale_name, &property_scale_default_value, ZEND_ACC_PUBLIC|ZEND_ACC_READONLY|ZEND_ACC_VIRTUAL, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
215 	zend_string_release(property_scale_name);
216 
217 	return class_entry;
218 }
219