Changeset b1b513d for libcfa/src/collections/string.hfa
- Timestamp:
- Apr 10, 2025, 5:27:36 PM (9 months ago)
- Branches:
- master
- Children:
- 234c432
- Parents:
- 6174ecc (diff), bb506e0 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 edited
-
libcfa/src/collections/string.hfa (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/collections/string.hfa
r6174ecc rb1b513d 10 10 // Created On : Fri Sep 03 11:00:00 2021 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Apr 5 15:16:23202513 // Update Count : 18012 // Last Modified On : Wed Apr 9 22:27:41 2025 13 // Update Count : 259 14 14 // 15 15 … … 17 17 18 18 #include <fstream.hfa> 19 20 21 // in string_res.hfa 22 struct string_res; 23 struct charclass_res; 19 #include <string_res.hfa> 24 20 25 21 struct string { … … 28 24 29 25 // Getters 26 static inline size_t len( const string & s ) { return len( *s.inner ); } 30 27 static inline size_t len( const char * cs ) { return strlen( cs ); }; 31 size_t len( const string & s );32 28 static inline size_t strlen( const string & s ) { return len( s ); } 33 29 … … 215 211 bool contains( const string & s, char ch ); // single character 216 212 217 int find( const string & s, char key ); 218 static inline int ?^? ( const string & s, char key ) { return find( s, key ); } 219 int find( const string & s, const char * key ); 220 static inline int ?^? ( const string & s, const char * key ) { return find( s, key ); } 221 int find( const string & s, const string & key ); 222 static inline int ?^? ( const string & s, const string & key ) { return find( s, key ); } 223 int find( const string & s, const char * key, size_t keysize ); 224 225 int find( const string & s, size_t start, char key ); 226 int find( const string & s, size_t start, const string & key ); 227 int find( const string & s, size_t start, const char * key ); 228 int find( const string & s, size_t start, const char * key, size_t keysize ); 213 //int find( const string & s, size_t start, size_t len, const string & key, size_t kstart, size_t klen ); 214 size_t find$( const string_res & s, size_t start, size_t len, const string & key_res, size_t kstart, size_t klen ); 215 216 size_t find( const string & s, char key ); 217 size_t find( const string & s, const char * key ); 218 size_t find( const string & s, const string & key ); 219 size_t find( const string & s, const char * key, size_t keysize ); 220 221 size_t find( const string & s, size_t start, char key ); 222 size_t find( const string & s, size_t start, const string & key ); 223 size_t find( const string & s, size_t start, const char * key ); 224 size_t find( const string & s, size_t start, const char * key, size_t keysize ); 225 static inline ?^?( const string & key, const string & s ) { return find( s, key ); } 226 static inline ?^?( const char * key, const string & s ) { return find( s, key ); } 229 227 230 228 bool includes( const string & s, const string & mask ); … … 241 239 242 240 // Slicing 243 string ?()( string & s, ssize_t start, ssize_t len ); // TODO const? 241 string ?()( string & s, ssize_t start, ssize_t len ); 242 static inline string ?()( const string & s, ssize_t start, ssize_t len ) { string & w = (string &)s; return w( start, len ); } // FIX ME 244 243 string ?()( string & s, ssize_t start ); 244 static inline string ?()( const string & s, ssize_t start ) { string & w = (string &)s; return w( start ); } // FIX ME 245 245 static inline string ?()( string & s, char m ) { return s( find( s, m ), 1 )`share; } 246 static inline string ?()( const string & s, char m ) { string & w = (string &)s; return w( find( s, m ), 1 )`share; } // FIX ME 246 247 static inline string ?()( string & s, const char * m ) { return s( find( s, m ), len( m ) )`share; } 248 static inline string ?()( const string & s, const char * m ) { string & w = (string &)s; return w( find( s, m ), len( m ) )`share; } // FIX ME 247 249 static inline string ?()( string & s, const string & m ) { return s( find( s, m ), len( m ) )`share; } 248 249 // Modifiers 250 void padStart( string & s, size_t n ); 251 void padStart( string & s, size_t n, char padding ); 252 void padEnd( string & s, size_t n ); 253 void padEnd( string & s, size_t n, char padding ); 254 250 static inline string ?()( const string & s, const string & m ) { string & w = (string &)s; return w( find( s, m ), len( m ) )`share; } // FIX ME 255 251 256 252 struct charclass { … … 267 263 void ^?{}( charclass & ); 268 264 269 int include( const string & s, const charclass & mask ); 270 271 int exclude( const string & s, const charclass & mask ); 272 273 /* 274 What to do with? 275 StrRet include( string & s, const charclass & mask ); 276 StrRet exclude( string & s, const charclass & mask ); 277 */ 265 size_t include( const string & s, const charclass & mask ); 266 static inline size_t include( const char * s, const charclass & mask ) { string temp = s; return include( temp, mask ); } 267 static inline string include( const string & s, const charclass & mask ) { ssize_t i = include( s, mask ); return s( 0, i )`share; } 268 static inline string include( const char * s, const charclass & mask ) { string temp = s; ssize_t i = include( temp, mask ); return temp( 0, i ); } 269 270 size_t exclude( const string & s, const charclass & mask ); 271 static inline size_t exclude( const char * s, const charclass & mask ) { string temp = s; return exclude( temp, mask ); } 272 static inline string exclude( const string & s, const charclass & mask ) { ssize_t i = exclude( s, mask ); return s( 0, i )`share; } 273 static inline string exclude( const char * s, const charclass & mask ) { string temp = s; ssize_t i = exclude( temp, mask ); return temp( 0, i ); } 274 275 size_t test( const string & s, int (*f)( int ) ); 276 static inline size_t test( const char * c, int (*f)( int ) ) { 277 const string S = c; 278 return test( S, f ); 279 } 280 281 string replace( string & s, const string & from, const string & to ); 282 static inline string replace( const char * s, const char * from, const char * to ) { 283 string S = s, From = from, To = to; 284 return replace( S, From, To ); 285 } 286 static inline string replace( string & s, const char * from, const char * to ) { 287 string From = from, To = to; 288 return replace( s, From, To ); 289 } 290 static inline string replace( string & s, const char * from, const string & to ) { 291 string From = from; 292 return replace( s, From, to ); 293 } 294 static inline string replace( string & s, string & from, const char * to ) { 295 string To = to; 296 return replace( s, from, To ); 297 } 298 299 string translate( const string & s, int (*f)( int ) ); 300 static inline string translate( const char * c, int (*f)( int ) ) { 301 const string S = c; 302 return translate( S, f ); 303 }
Note:
See TracChangeset
for help on using the changeset viewer.