@@ -14,6 +14,7 @@ module sourcery_string_m
1414 generic :: string = > as_character
1515 procedure :: is_allocated
1616 procedure :: get_json_key
17+ generic :: operator (// ) = > string_t_cat_string_t, string_t_cat_character, character_cat_string_t
1718 generic :: operator (/= ) = > string_t_ne_string_t, string_t_ne_character, character_ne_string_t
1819 generic :: operator (==) = > string_t_eq_string_t, string_t_eq_character, character_eq_string_t
1920 generic :: assignment (= ) = > assign_string_t_to_character, assign_character_to_string_t
@@ -22,6 +23,8 @@ module sourcery_string_m
2223 procedure , private :: string_t_ne_string_t, string_t_ne_character
2324 procedure , private :: string_t_eq_string_t, string_t_eq_character
2425 procedure , private :: assign_character_to_string_t
26+ procedure , private :: string_t_cat_string_t, string_t_cat_character
27+ procedure , private , pass(rhs) :: character_cat_string_t
2528 procedure , private , pass(rhs) :: character_ne_string_t
2629 procedure , private , pass(rhs) :: character_eq_string_t
2730 procedure , private , pass(rhs) :: assign_string_t_to_character
@@ -137,6 +140,26 @@ elemental module function character_ne_string_t(lhs, rhs) result(lhs_ne_rhs)
137140 logical lhs_ne_rhs
138141 end function
139142
143+ pure module function string_t_cat_string_t(lhs, rhs) result(lhs_cat_rhs)
144+ implicit none
145+ class(string_t), intent (in ) :: lhs, rhs
146+ type (string_t) lhs_cat_rhs
147+ end function
148+
149+ pure module function string_t_cat_character(lhs, rhs) result(lhs_cat_rhs)
150+ implicit none
151+ class(string_t), intent (in ) :: lhs
152+ character (len=* ), intent (in ) :: rhs
153+ type (string_t) lhs_cat_rhs
154+ end function
155+
156+ pure module function character_cat_string_t(lhs, rhs) result(lhs_cat_rhs)
157+ implicit none
158+ character (len=* ), intent (in ) :: lhs
159+ class(string_t), intent (in ) :: rhs
160+ type (string_t) lhs_cat_rhs
161+ end function
162+
140163 pure module subroutine assign_character_to_string_t(lhs, rhs)
141164 implicit none
142165 class(string_t), intent (inout ) :: lhs
0 commit comments