improve decimal context
[awesomized/ext-ion] / ion.stub.php
index 7e27334ce1e9a7ea39fc0b857eaa61605d95175c..e874b927018ee1fe210d0371f9ff80ba377cac0b 100644 (file)
@@ -101,12 +101,41 @@ class Collection {
 
 }
 
+namespace ion;
+class LOB {
+    public function __construct(
+        public readonly string $value,
+        public readonly Type $type = Type::CLob,
+    ) {
+    }
+}
+
+namespace ion\Decimal\Context;
+enum Rounding : int {
+    case Ceiling    = 0;
+    case Up         = 1;
+    case HalfUp     = 2;
+    case HalfEven   = 3;
+    case HalfDown   = 4;
+    case Down       = 5;
+    case Floor      = 6;
+    case Down05Up   = 7;
+}
 
 namespace ion\Decimal;
 class Context {
     public function __construct(
-        public readonly int $bits = 128
+        public readonly int $digits,
+        public readonly int $eMax,
+        public readonly int $eMin,
+        public readonly Context\Rounding|int $round,
+        public readonly bool $clamp,
     ) {}
+
+    public static function Dec32() : Context {}
+    public static function Dec64() : Context {}
+    public static function Dec128() : Context {}
+    public static function DecMax(Context\Rounding|int $round = Context\Rounding::HalfEven) : Context {}
 }
 
 namespace ion;
@@ -450,6 +479,7 @@ namespace ion\Serializer;
 class PHP implements \ion\Serializer {
     public function __construct(
         public readonly ?\ion\Writer\Options $writerOptions = null,
+        public readonly bool $multiSequence = false,
         public readonly bool $callMagicSerialize = true,
         public readonly ?string $callCustomSerialize = null,
     ) {}
@@ -461,6 +491,7 @@ namespace ion\Unserializer;
 class PHP implements \ion\Unserializer {
     public function __construct(
         public readonly ?\ion\Reader\Options $readerOptions = null,
+        public readonly bool $multiSequence = true,
         public readonly bool $callMagicUnserialize = true,
         public readonly ?string $callCustomUnserialize = null,
     ){}
@@ -473,4 +504,4 @@ class PHP implements \ion\Unserializer {
 namespace ion;
 function serialize(mixed $data, ?Serializer $serializer = null) : string {}
 /** @param string|resource $data */
-function unserialize(mixed $data, ?Unserializer $unserializer = null) : mixed {}
+function unserialize($data, ?Unserializer $unserializer = null) : mixed {}