Skip to main content

qubit_json/encode/
json_integer_signedness.rs

1// =============================================================================
2//    Copyright (c) 2026 Haixing Hu.
3//
4//    SPDX-License-Identifier: Apache-2.0
5//
6//    Licensed under the Apache License, Version 2.0.
7// =============================================================================
8//! Defines the signedness of a rejected wide JSON integer.
9
10/// Signedness retained by an integer-range encoding failure.
11///
12/// # Examples
13///
14/// ```
15/// use qubit_json::encode::JsonIntegerSignedness;
16/// use qubit_json::value::JsonValueEncoder;
17///
18/// let error = JsonValueEncoder::new()
19///     .encode(&u128::MAX)
20///     .expect_err("wide integer must be rejected");
21/// assert_eq!(error.integer_signedness(), Some(JsonIntegerSignedness::Unsigned));
22/// ```
23#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
24pub enum JsonIntegerSignedness {
25    /// The source was serialized through a signed integer entry point.
26    Signed,
27    /// The source was serialized through an unsigned integer entry point.
28    Unsigned,
29}