@@ -12,22 +12,34 @@ namespace odr::internal::pdf {
1212
1313class SimpleArrayElement {
1414public:
15- using Holder = std::variant<Integer, Real, std::string >;
15+ using Holder = std::variant<Integer, Real, StandardString, HexString, Name >;
1616
1717 SimpleArrayElement (Integer integer) : m_holder{integer} {}
1818 SimpleArrayElement (Real real) : m_holder{real} {}
19- SimpleArrayElement (std::string string) : m_holder{std::move (string)} {}
19+ SimpleArrayElement (StandardString string) : m_holder{std::move (string)} {}
20+ SimpleArrayElement (HexString string) : m_holder{std::move (string)} {}
21+ SimpleArrayElement (Name name) : m_holder{std::move (name)} {}
2022
2123 Holder &holder () { return m_holder; }
2224 const Holder &holder () const { return m_holder; }
2325
2426 bool is_integer () const { return is<Integer>(); }
2527 bool is_real () const { return is<Real>() || is_integer (); }
26- bool is_string () const { return is<std::string>(); }
28+ bool is_standard_string () const { return is<StandardString>(); }
29+ bool is_hex_string () const { return is<HexString>(); }
30+ bool is_name () const { return is<Name>(); }
31+ bool is_string () const {
32+ return is_standard_string () || is_hex_string () || is_name ();
33+ }
2734
2835 Integer as_integer () const { return as<Integer>(); }
2936 Real as_real () const { return is<Real>() ? as<Real>() : as_integer (); }
30- const std::string &as_string () const { return as<std::string>(); }
37+ const std::string &as_standard_string () const {
38+ return as<StandardString>().string ;
39+ }
40+ const std::string &as_hex_string () const { return as<HexString>().string ; }
41+ const std::string &as_name () const { return as<Name>().string ; }
42+ const std::string &as_string () const ;
3143
3244 void to_stream (std::ostream &) const ;
3345 std::string to_string () const ;
@@ -70,24 +82,37 @@ class SimpleArray {
7082
7183class GraphicsArgument {
7284public:
73- using Holder = std::variant<Integer, Real, std::string, SimpleArray>;
85+ using Holder =
86+ std::variant<Integer, Real, StandardString, HexString, Name, SimpleArray>;
7487
7588 GraphicsArgument (Integer integer) : m_holder{integer} {}
7689 GraphicsArgument (Real real) : m_holder{real} {}
77- GraphicsArgument (std::string string) : m_holder{std::move (string)} {}
90+ GraphicsArgument (StandardString string) : m_holder{std::move (string)} {}
91+ GraphicsArgument (HexString string) : m_holder{std::move (string)} {}
92+ GraphicsArgument (Name name) : m_holder{std::move (name)} {}
7893 GraphicsArgument (SimpleArray array) : m_holder(std::move(array)) {}
7994
8095 Holder &holder () { return m_holder; }
8196 const Holder &holder () const { return m_holder; }
8297
8398 bool is_integer () const { return is<Integer>(); }
8499 bool is_real () const { return is<Real>() || is_integer (); }
85- bool is_string () const { return is<std::string>(); }
100+ bool is_standard_string () const { return is<StandardString>(); }
101+ bool is_hex_string () const { return is<HexString>(); }
102+ bool is_name () const { return is<Name>(); }
103+ bool is_string () const {
104+ return is_standard_string () || is_hex_string () || is_name ();
105+ }
86106 bool is_array () const { return is<SimpleArray>(); }
87107
88108 Integer as_integer () const { return as<Integer>(); }
89109 Real as_real () const { return is<Real>() ? as<Real>() : as_integer (); }
90- const std::string &as_string () const { return as<std::string>(); }
110+ const std::string &as_standard_string () const {
111+ return as<StandardString>().string ;
112+ }
113+ const std::string &as_hex_string () const { return as<HexString>().string ; }
114+ const std::string &as_name () const { return as<Name>().string ; }
115+ const std::string &as_string () const ;
91116 const SimpleArray &as_array () const { return as<SimpleArray>(); }
92117
93118 void to_stream (std::ostream &) const ;
0 commit comments