blob: ff4571842e1361d28f2d3c514810604688c35a0a (
plain) (
tree)
|
|
#pragma once
#include <util/generic/strbuf.h>
namespace NYsonPull::NDetail {
enum class percent_scalar_type {
boolean,
float64
};
struct percent_scalar {
//! Text boolean literals
static constexpr TStringBuf true_literal = "%true";
static constexpr TStringBuf false_literal = "%false";
//! Text floating-point literals
static constexpr TStringBuf nan_literal = "%nan";
static constexpr TStringBuf positive_inf_literal = "%inf";
static constexpr TStringBuf negative_inf_literal = "%-inf";
percent_scalar_type type;
union {
double as_float64;
bool as_boolean;
} value;
percent_scalar(double v) {
type = percent_scalar_type::float64;
value.as_float64 = v;
}
percent_scalar(bool v) {
type = percent_scalar_type::boolean;
value.as_boolean = v;
}
};
}
|