1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
//! JSON utilities for the NeMo Flow runtime.
//!
//! This module provides a [`Json`] type alias for [`serde_json::Value`] used
//! throughout the crate, and a [`merge_json`] helper for shallow-merging
//! optional JSON values.
/// Type alias for [`serde_json::Value`], used as the universal JSON
/// representation throughout the NeMo Flow runtime.
pub type Json = Value;
/// Shallow-merge two optional JSON values.
///
/// This is used throughout the runtime to combine optional `data` and
/// `metadata` payloads without recursively descending into nested objects.
///
/// # Parameters
/// - `a`: Base JSON value.
/// - `b`: Override JSON value.
///
/// # Returns
/// An [`Option`] containing the merged JSON value. When both inputs are JSON
/// objects, keys from `b` override keys from `a`. When only one input is
/// present, that input is returned. When both inputs are present but at least
/// one is not an object, `b` wins.
///
/// # Notes
/// The merge is shallow. Nested objects are replaced rather than merged
/// recursively.