Branch data TLA Line data Source code
1 : : // Copyright (c) 2018-2022 Thomas Fussell
2 : : // Copyright (c) 2024-2025 xlnt-community
3 : : //
4 : : // Permission is hereby granted, free of charge, to any person obtaining a copy
5 : : // of this software and associated documentation files (the "Software"), to deal
6 : : // in the Software without restriction, including without limitation the rights
7 : : // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 : : // copies of the Software, and to permit persons to whom the Software is
9 : : // furnished to do so, subject to the following conditions:
10 : : //
11 : : // The above copyright notice and this permission notice shall be included in
12 : : // all copies or substantial portions of the Software.
13 : : //
14 : : // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 : : // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 : : // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 : : // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 : : // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 : : // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 : : // THE SOFTWARE
21 : : //
22 : : // @license: http://www.opensource.org/licenses/mit-license.php
23 : : // @author: see AUTHORS file
24 : :
25 : : #pragma once
26 : :
27 : : #include <string>
28 : :
29 : : #include <xlnt/packaging/relationship.hpp>
30 : : #include <xlnt/utils/optional.hpp>
31 : :
32 : : namespace xlnt {
33 : : namespace detail {
34 : :
35 : : // [serialised]
36 : : struct hyperlink_impl
37 : : {
38 : : xlnt::relationship relationship;
39 : : xlnt::optional<std::string> location;
40 : : xlnt::optional<std::string> tooltip;
41 : : xlnt::optional<std::string> display;
42 : : };
43 : :
44 :UBC 0 : inline bool operator==(const hyperlink_impl &lhs, const hyperlink_impl &rhs)
45 : : {
46 : 0 : return lhs.relationship == rhs.relationship
47 [ # # ]: 0 : && lhs.tooltip == rhs.tooltip
48 [ # # # # ]: 0 : && lhs.display == rhs.display;
49 : : }
50 : :
51 : : inline bool operator!=(const hyperlink_impl &lhs, const hyperlink_impl &rhs)
52 : : {
53 : : return !(lhs == rhs);
54 : : }
55 : :
56 : : } // namespace detail
57 : : } // namespace xlnt
|