impl_vec!(JsonKeyValue, JsonKeyValueVec, JsonKeyValueVecDestructor, JsonKeyValueVecDestructorType, JsonKeyValueVecSlice, OptionJsonKeyValue);
#[allow(clippy::not_unsafe_ptr_arg_deref)] // SAFETY/FFI: `*const T` is the C-ABI signature; the fn null-checks then derefs under the documented caller contract (C guarantees a valid ptr/len). Marking it `unsafe fn` would force unsafe blocks into the generated dll bindings.
#[allow(clippy::not_unsafe_ptr_arg_deref)] // SAFETY/FFI: `*const T` is the C-ABI signature; the fn null-checks then derefs under the documented caller contract (C guarantees a valid ptr/len). Marking it `unsafe fn` would force unsafe blocks into the generated dll bindings.
JsonType::String => serde_json::Value::String(self.internal.string_value.as_str().to_string()),
if let Ok(serde_json::Value::Array(arr)) = serde_json::from_str(self.internal.string_value.as_str()) {
if let Ok(serde_json::Value::Object(obj)) = serde_json::from_str(self.internal.string_value.as_str()) {
let value: serde_json::Value = serde_json::from_str(self.internal.string_value.as_str()).ok()?;
let value: serde_json::Value = serde_json::from_str(self.internal.string_value.as_str()).ok()?;
let value: serde_json::Value = match serde_json::from_str(self.internal.string_value.as_str()) {
let value: serde_json::Value = serde_json::from_str(self.internal.string_value.as_str()).ok()?;
let value: serde_json::Value = serde_json::from_str(self.internal.string_value.as_str()).ok()?;
JsonType::Bool => AzString::from(if self.internal.bool_value { alloc::string::String::from("true") } else { alloc::string::String::from("false") }),
let value: serde_json::Value = match serde_json::from_str(self.internal.string_value.as_str()) {
let value: serde_json::Value = match serde_json::from_str(self.internal.string_value.as_str()) {