diff options
| author | Amlal <amlal@el-mahrouss-logic.com> | 2024-09-27 11:41:44 +0200 |
|---|---|---|
| committer | Amlal <amlal@el-mahrouss-logic.com> | 2024-09-27 11:41:44 +0200 |
| commit | 8db6fc60063757628f92bd1c4d4855775f4ff9e2 (patch) | |
| tree | e27013969dc749bbb8131e24e4171034fdb80f56 /dev/zka/NewKit | |
| parent | daa4f8c748d290feba8a71e889743a8a3097ad7d (diff) | |
feat&wip: Math API for CG, WiP HAL Paging API.
- NOTE: HAL Paging API is still in wip, issues have to be fixed.
- Moved WM code to corecg driver.
Signed-off-by: Amlal <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'dev/zka/NewKit')
| -rw-r--r-- | dev/zka/NewKit/Json.hxx | 24 | ||||
| -rw-r--r-- | dev/zka/NewKit/Macros.hxx | 2 | ||||
| -rw-r--r-- | dev/zka/NewKit/Variant.hxx | 16 |
3 files changed, 31 insertions, 11 deletions
diff --git a/dev/zka/NewKit/Json.hxx b/dev/zka/NewKit/Json.hxx index e37dc93d..a5893147 100644 --- a/dev/zka/NewKit/Json.hxx +++ b/dev/zka/NewKit/Json.hxx @@ -21,7 +21,7 @@ namespace Kernel { - /// @brief Json value class + /// @brief Json class class JsonType final { public: @@ -77,11 +77,22 @@ namespace Kernel { STATIC JsonType In(const Char* full_array) { - if (full_array[0] != '{') - return JsonType::kNull; + auto start_val = '{'; + auto end_val = '}'; + Boolean probe_value = false; + + if (full_array[0] != start_val) + { + if (full_array[0] != '[') + return JsonType::kNull; + + start_val = '['; + end_val = ']'; + + probe_value = true; + } SizeT len = rt_string_len(full_array); - Boolean probe_value = false; SizeT key_len = 0; SizeT value_len = 0; @@ -96,7 +107,7 @@ namespace Kernel if (probe_value) { - if (full_array[i] == '}' || + if (full_array[i] == end_val || full_array[i] == ',') { probe_value = false; @@ -112,6 +123,9 @@ namespace Kernel } else { + if (start_val == '[') + continue; + if (full_array[i] == ':') { probe_value = true; diff --git a/dev/zka/NewKit/Macros.hxx b/dev/zka/NewKit/Macros.hxx index 51b9575b..e765d87b 100644 --- a/dev/zka/NewKit/Macros.hxx +++ b/dev/zka/NewKit/Macros.hxx @@ -130,4 +130,4 @@ #define kSysChime "\\System\\startup.wav" /// @brief The main system loader. -#define kSysProcess "ZKA AUTHORITY\\KERNEL" +#define kKernelProcessName "ZKA AUTHORITY\\KERNEL" diff --git a/dev/zka/NewKit/Variant.hxx b/dev/zka/NewKit/Variant.hxx index 015cec92..6b0f30bd 100644 --- a/dev/zka/NewKit/Variant.hxx +++ b/dev/zka/NewKit/Variant.hxx @@ -21,25 +21,25 @@ namespace Kernel kBlob, kNull, kJson, + kXML, }; public: explicit Variant() = delete; public: - Variant& operator=(const Variant&) = default; - Variant(const Variant&) = default; + ZKA_COPY_DEFAULT(Variant); ~Variant() = default; public: explicit Variant(StringView* stringView) - : fPtr((voidPtr)stringView), fKind(VariantKind::kString) + : fPtr((VoidPtr)stringView), fKind(VariantKind::kString) { } explicit Variant(JsonType* json) - : fPtr((voidPtr)json), fKind(VariantKind::kJson) + : fPtr((VoidPtr)json), fKind(VariantKind::kJson) { } @@ -48,7 +48,7 @@ namespace Kernel { } - explicit Variant(voidPtr ptr) + explicit Variant(VoidPtr ptr) : fPtr(ptr), fKind(VariantKind::kBlob) { } @@ -57,6 +57,12 @@ namespace Kernel const Char* ToString(); VoidPtr Leak(); + template <typename T> + T* As() + { + return reinterpret_cast<T*>(fPtr); + } + private: voidPtr fPtr{nullptr}; VariantKind fKind{VariantKind::kNull}; |
