@@ -14,12 +14,16 @@ module sourcery_string_m
14
14
generic :: string = > as_character
15
15
procedure :: is_allocated
16
16
procedure :: get_json_key
17
- procedure , private :: &
18
- get_json_integer_array, get_json_logical, get_json_integer, get_json_string, get_json_real
17
+ generic :: operator ( /= ) = > string_t_ne_string_t, string_t_ne_character, character_ne_string_t
18
+ generic :: operator (==) = > string_t_eq_string_t, string_t_eq_character, character_eq_string_t
19
19
generic :: get_json_value = > &
20
20
get_json_integer_array, get_json_logical, get_json_integer, get_json_string, get_json_real
21
- procedure , private :: equivalent
22
- generic :: operator (==) = > equivalent
21
+ procedure , private :: &
22
+ get_json_integer_array, get_json_logical, get_json_integer, get_json_string, get_json_real
23
+ procedure , private :: string_t_ne_string_t, string_t_ne_character
24
+ procedure , private , pass(rhs) :: character_ne_string_t
25
+ procedure , private :: string_t_eq_string_t, string_t_eq_character
26
+ procedure , private , pass(rhs) :: character_eq_string_t
23
27
end type
24
28
25
29
interface string_t
@@ -92,10 +96,44 @@ pure module function get_json_integer_array(self, key, mold) result(value_)
92
96
integer , allocatable :: value_(:)
93
97
end function
94
98
95
- elemental module function equivalent(lhs, rhs) result(lhs_eqv_rhs)
99
+ elemental module function string_t_eq_string_t(lhs, rhs) result(lhs_eq_rhs)
100
+ implicit none
101
+ class(string_t), intent (in ) :: lhs, rhs
102
+ logical lhs_eq_rhs
103
+ end function
104
+
105
+ elemental module function string_t_eq_character(lhs, rhs) result(lhs_eq_rhs)
106
+ implicit none
107
+ class(string_t), intent (in ) :: lhs
108
+ character (len=* ), intent (in ) :: rhs
109
+ logical lhs_eq_rhs
110
+ end function
111
+
112
+ elemental module function character_eq_string_t(lhs, rhs) result(lhs_eq_rhs)
113
+ implicit none
114
+ class(string_t), intent (in ) :: rhs
115
+ character (len=* ), intent (in ) :: lhs
116
+ logical lhs_eq_rhs
117
+ end function
118
+
119
+ elemental module function string_t_ne_string_t(lhs, rhs) result(lhs_ne_rhs)
96
120
implicit none
97
121
class(string_t), intent (in ) :: lhs, rhs
98
- logical lhs_eqv_rhs
122
+ logical lhs_ne_rhs
123
+ end function
124
+
125
+ elemental module function string_t_ne_character(lhs, rhs) result(lhs_ne_rhs)
126
+ implicit none
127
+ class(string_t), intent (in ) :: lhs
128
+ character (len=* ), intent (in ) :: rhs
129
+ logical lhs_ne_rhs
130
+ end function
131
+
132
+ elemental module function character_ne_string_t(lhs, rhs) result(lhs_ne_rhs)
133
+ implicit none
134
+ class(string_t), intent (in ) :: rhs
135
+ character (len=* ), intent (in ) :: lhs
136
+ logical lhs_ne_rhs
99
137
end function
100
138
101
139
end interface
0 commit comments