mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 00:50:22 +00:00
AK: Make it easy to convert between JsonValue and IPv4Address.
They still use string storage, but this change makes it nice and easy to work with IPv4 addresses in JSON data.
This commit is contained in:
parent
d8f1a7e046
commit
7bb1e465c6
Notes:
sideshowbarker
2024-07-19 13:22:20 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/7bb1e465c62
2 changed files with 15 additions and 0 deletions
|
@ -110,6 +110,11 @@ JsonValue::JsonValue(const String& value)
|
|||
}
|
||||
}
|
||||
|
||||
JsonValue::JsonValue(const IPv4Address& value)
|
||||
: JsonValue(value.to_string())
|
||||
{
|
||||
}
|
||||
|
||||
JsonValue::JsonValue(const JsonObject& value)
|
||||
: m_type(Type::Object)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/AKString.h>
|
||||
#include <AK/IPv4Address.h>
|
||||
#include <AK/Optional.h>
|
||||
|
||||
namespace AK {
|
||||
|
||||
|
@ -44,6 +46,7 @@ public:
|
|||
JsonValue(bool);
|
||||
JsonValue(const char*);
|
||||
JsonValue(const String&);
|
||||
JsonValue(const IPv4Address&);
|
||||
JsonValue(const JsonArray&);
|
||||
JsonValue(const JsonObject&);
|
||||
|
||||
|
@ -57,6 +60,13 @@ public:
|
|||
return default_value;
|
||||
}
|
||||
|
||||
Optional<IPv4Address> to_ipv4_address() const
|
||||
{
|
||||
if (!is_string())
|
||||
return {};
|
||||
return IPv4Address::from_string(as_string());
|
||||
}
|
||||
|
||||
int as_int() const
|
||||
{
|
||||
ASSERT(is_int());
|
||||
|
|
Loading…
Reference in a new issue