use std::collections::BTreeSet;
use qubit_budget::json::JsonContainerKind;
use crate::internal::JsonPrivateProtocolState;
use crate::value::SafeJsonValue;
use crate::value::internal::SafeValueBuilder;
pub(in crate::value::json_value_encoder) enum CompoundState {
Sequence {
values: SafeValueBuilder,
depth: usize,
count: usize,
kind: JsonContainerKind,
},
Map {
values: Vec<(String, SafeJsonValue)>,
keys: BTreeSet<String>,
next_key: Option<String>,
depth: usize,
count: usize,
},
TupleVariant {
variant: String,
values: SafeValueBuilder,
depth: usize,
count: usize,
},
StructVariant {
variant: String,
values: Vec<(String, SafeJsonValue)>,
keys: BTreeSet<String>,
depth: usize,
count: usize,
},
RawValue {
text: Option<String>,
state: JsonPrivateProtocolState,
depth: usize,
},
Number {
text: Option<String>,
state: JsonPrivateProtocolState,
depth: usize,
},
}