Storm 1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ValuationDescription.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <optional>
5#include <variant>
6
10
11namespace storm::umb {
13 struct Padding {
14 uint64_t padding{0};
15 static auto constexpr JsonKeys = {"padding"};
17 };
18 struct Variable {
19 std::string name;
20 std::optional<bool> isOptional;
22 std::optional<int64_t> lower, upper, offset;
23 static auto constexpr JsonKeys = {"name", "is-optional", "type", "lower", "upper", "offset"};
25 };
26 std::vector<std::variant<Padding, Variable>> variables;
27 static auto constexpr JsonKeys = {"variables"};
29
34 uint64_t sizeInBits() const;
35};
36
38 bool unique{false};
39 std::optional<uint64_t> numStrings;
40 std::vector<ValuationClassDescription> classes;
41 static auto constexpr JsonKeys = {"unique", "#strings", "classes"};
43};
44} // namespace storm::umb
Helper struct to enable json serialization.
std::vector< std::variant< Padding, Variable > > variables
uint64_t sizeInBits() const
Computes the size in bits of a valuation.
std::optional< uint64_t > numStrings
storm::JsonSerialization JsonSerialization
std::vector< ValuationClassDescription > classes