Changeset 2f16569 for libcfa/src


Ignore:
Timestamp:
May 8, 2026, 7:52:34 AM (30 hours ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
bc547d3
Parents:
d8a2f98
Message:

remove string 'contains' function and replace with 'includes', make string 'includes' inline

Location:
libcfa/src/collections
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/collections/string.cfa

    rd8a2f98 r2f16569  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May  4 21:50:03 2026
    13 // Update Count     : 400
     12// Last Modified On : Fri May  8 07:41:00 2026
     13// Update Count     : 409
    1414//
    1515
     
    6767}
    6868
    69 void ?{}( string & s, signed long int rhs ) {
     69void ?{}( string & s, size_t rhs ) {
    7070        (s.inner) { malloc() };
    7171        ?{}( *s.inner, rhs );
    7272}
    7373
    74 void ?{}( string & s, size_t rhs ) {
     74void ?{}( string & s, ssize_t rhs ) {
    7575        (s.inner) { malloc() };
    7676        ?{}( *s.inner, rhs );
     
    118118// Assignment
    119119
    120 PBOOST string & ?=?( string & s, string c ) {
    121         (*s.inner) = (*c.inner);
    122         return s;
    123 }
    124 
    125 string & ?=?( string & s, const char * val ) {
    126         (*s.inner) = val;
    127         return s;
    128 }
    129 
    130 string & ?=?( string & s, char val ) {
    131         (*s.inner) = val;
    132         return s;
    133 }
    134 
    135 string & assign( string & s, const string & c, size_t n ) {
    136         assign( *s.inner, *c.inner, n );
    137         return s;
    138 }
    139 
    140 string & assign( string & s, const char * cs , size_t n ) {
    141         assign( *s.inner, cs, n );
    142         return s;
    143 }
    144 
    145 string & ?=?( string & s, signed long int rhs ) {
    146         (*s.inner) = rhs;
     120PBOOST string & ?=?( string & s, string rhs ) {
     121        (*s.inner) = (*rhs.inner);
     122        return s;
     123}
     124
     125string & ?=?( string & s, char rhs ) {
     126        (*s.inner) = rhs;
     127        return s;
     128}
     129
     130string & ?=?( string & s, const char * rhs ) {
     131        (*s.inner) = rhs;
     132        return s;
     133}
     134
     135string & assign( string & s, const string & rhs, size_t n ) {
     136        assign( *s.inner, *rhs.inner, n );
     137        return s;
     138}
     139
     140string & assign( string & s, const char * rhs, size_t n ) {
     141        assign( *s.inner, rhs, n );
    147142        return s;
    148143}
    149144
    150145string & ?=?( string & s, size_t rhs ) {
     146        (*s.inner) = rhs;
     147        return s;
     148}
     149
     150string & ?=?( string & s, ssize_t rhs ) {
    151151        (*s.inner) = rhs;
    152152        return s;
     
    403403// Search
    404404
    405 bool contains( const string & s, char ch ) {
    406         return contains( *s.inner, ch );
    407 }
    408 
    409405size_t find( const string & s, size_t start, size_t len, const string & key, size_t kstart, size_t klen ) {
    410406        if ( start < 0 ) { start += len( s ); }
     
    449445}
    450446
    451 bool includes( const string & s, const string & mask ) {
    452         return includes( *s.inner, *mask.inner );
    453 }
    454 
    455 bool includes( const string & s, const char * mask ) {
    456         return includes( *s.inner, mask );
    457 }
    458 
    459 bool includes( const string & s, const char * mask, size_t masksize ) {
    460         return includes( *s.inner, mask, masksize );
    461 }
     447// bool includes( const string & s, const string & search ) {
     448//      return includes( *s.inner, *search.inner );
     449// }
     450
     451// bool includes( const string & s, const char * search ) {
     452//      return includes( *s.inner, search );
     453// }
     454
     455// bool includes( const string & s, const char * search, size_t searchsize ) {
     456//      return includes( *s.inner, search, searchsize );
     457// }
    462458
    463459bool startsWith( const string & s, const string & prefix ) {
  • libcfa/src/collections/string.hfa

    rd8a2f98 r2f16569  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May  4 21:54:23 2026
    13 // Update Count     : 332
     12// Last Modified On : Fri May  8 07:40:57 2026
     13// Update Count     : 353
    1414//
    1515
     
    3535void ?{}( string & s, const char * cs );                                // copy from string literal (NULL-terminated)
    3636void ?{}( string & s, const char * cs, size_t size );   // copy specific length from buffer
    37 
    38 void ?{}( string & s, signed long int rhs );
    3937void ?{}( string & s, size_t rhs );
     38void ?{}( string & s, ssize_t rhs );
    4039void ?{}( string & s, double rhs );
    4140void ?{}( string & s, long double rhs );
    4241void ?{}( string & s, double _Complex rhs );
    4342void ?{}( string & s, long double _Complex rhs );
    44 static inline void ?{}( string & s, int rhs ) { (s){(signed long int) rhs}; }
    45 
    46 PBOOST string & ?=?( string & s, string c );
    47 string & ?=?( string & s, const char * cs );                    // copy from "literal"
    48 string & ?=?( string & s, char c );                                             // copy from 'l'
    49 string & assign( string & s, const string & c, size_t n );
    50 string & assign( string & s, const char * cs, size_t n );
    51 string & ?=?( string & s, signed long int rhs );
     43
     44PBOOST string & ?=?( string & s, string rhs );
     45string & ?=?( string & s, char rhs );                                   // copy from 'l'
     46string & ?=?( string & s, const char * rhs );                   // copy from "literal"
     47string & assign( string & s, const string & rhs, size_t n );
     48string & assign( string & s, const char * rhs, size_t n );
    5249string & ?=?( string & s, size_t rhs );
     50string & ?=?( string & s, ssize_t rhs );
    5351string & ?=?( string & s, double rhs );
    5452string & ?=?( string & s, long double rhs );
    5553string & ?=?( string & s, double _Complex rhs );
    5654string & ?=?( string & s, long double _Complex rhs );
    57 static inline string & ?=?( string & s, int rhs ) { return s = ((signed long int) rhs); } // to match cost of (char * int): int
    58 
     55
     56// Conversion
    5957static inline string tostr( char c ) { string s = c; return s; }
    6058static inline string tostr( const char * cs ) { string s = cs; return s; }
    61 static inline string tostr( signed long int v ) { string s = v; return s; }
    6259static inline string tostr( size_t v ) { string s = v; return s; }
     60static inline string tostr( ssize_t v ) { string s = v; return s; }
    6361static inline string tostr( double v ) { string s = v; return s; }
    6462static inline string tostr( long double v ) { string s = v; return s; }
    6563static inline string tostr( long double _Complex v ) { string s = v; return s; }
    6664
     65// C compatibility
    6766static inline string & strcpy( string & s, const char * cs ) { s = cs; return s; }
    6867static inline string & strncpy( string & s, const char * cs, size_t n ) { assign( s, cs, n ); return s; }
     
    234233
    235234// String search
    236 bool contains( const string & s, char ch );                             // single character
    237 
    238 //int find( const string & s, size_t start, size_t len, const string & key, size_t kstart, size_t klen );
    239 size_t find$( const string_res & s, size_t start, size_t len, const string & key_res, size_t kstart, size_t klen );
    240235
    241236size_t find( const string & s, char key );
     
    249244size_t find( const string & s, size_t start, const char * key, size_t keysize );
    250245
    251 bool includes( const string & s, const string & mask );
    252 bool includes( const string & s, const char * mask );
    253 bool includes( const string & s, const char * mask, size_t masksize );
     246static inline bool includes( const string & s, char key ) { return find( s, key ) < len( s ); }
     247static inline bool includes( const string & s, const char * key ) { return find( s, key ) < len( s ); }
     248static inline bool includes( const string & s, const string & key ) { return find( s, key ) < len( s ); }
     249static inline bool includes( const string & s, const char * key, size_t keysize ){ return find( s, key, keysize ) < len( s ); }
    254250
    255251bool startsWith( const string & s, const string & prefix );
  • libcfa/src/collections/string_res.cfa

    rd8a2f98 r2f16569  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Apr 14 20:45:39 2025
    13 // Update Count     : 130
     12// Last Modified On : Thu May  7 13:14:45 2026
     13// Update Count     : 135
    1414//
    1515
     
    750750// Search
    751751
    752 bool contains(const string_res & s, char ch) {
    753         for ( i; len(s) ) {
    754                 if (s[i] == ch) return true;
    755         }
    756         return false;
    757 }
    758 
    759752// int find$( const string_res & s, ssize_t start, ssize_t len, const string_res & k, ssize_t kstart, ssize_t klen ) {
    760753//     if ( start < 0 ) start = s.Handle.lnth + start;          // adjust negative starting locations
     
    917910static bool test( const charclass_res & mask, char c ) {
    918911        // instead, use sorted char list?
    919         return contains( mask.chars, c );
     912        for ( i; len(mask.chars) ) {
     913                if (mask.chars[i] == c) return true;
     914        }
     915        return false;
     916//      return contains( mask.chars, c );
    920917}
    921918
  • libcfa/src/collections/string_res.hfa

    rd8a2f98 r2f16569  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Apr 13 21:03:37 2025
    13 // Update Count     : 79
     12// Last Modified On : Thu May  7 13:14:04 2026
     13// Update Count     : 83
    1414//
    1515
     
    9494        ?{}( s, src, mode, 0, (len(src) > maxlen)?maxlen:len(src) );
    9595}
     96void ?{}( string_res & s, size_t rhs );
    9697void ?{}( string_res & s, ssize_t rhs );
    97 void ?{}( string_res & s, size_t rhs );
    9898void ?{}( string_res & s, double rhs );
    9999void ?{}( string_res & s, long double rhs );
     
    222222
    223223// String search
    224 bool contains( const string_res & s, char ch); // single character
    225224
    226225int find$( const string_res & s, ssize_t start, ssize_t len, const string_res & key, ssize_t kstart, ssize_t klen );
Note: See TracChangeset for help on using the changeset viewer.