Changeset 1324fde


Ignore:
Timestamp:
Aug 21, 2025, 10:09:28 PM (5 weeks ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
8dc8f68
Parents:
01e6bd9
Message:

add all combinations of include/exclude with string, char *, charclass; add character-class functions with signature bool (*)( char )

File:
1 edited

Legend:

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

    r01e6bd9 r1324fde  
    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:35 2025
    13 // Update Count     : 284
     12// Last Modified On : Thu Aug 21 09:07:28 2025
     13// Update Count     : 308
    1414//
    1515
     
    278278
    279279size_t include( const string & s, const charclass & mask );
    280 static inline size_t include( const char * cs, const charclass & mask ) { const string s = cs; return include( s, mask ); }
     280static inline size_t include( const string & s, const char * mask ) { return include( s, (charclass){ mask } ); }
     281static inline size_t include( const string & s, const string & mask ) { return include( s, (charclass){ mask } ); }
     282static inline size_t include( const char * cs, const charclass & mask ) { return include( (string){ cs }, mask ); }
     283static inline size_t include( const char * cs, const char * mask ) { return include( (string){ cs }, (charclass){ mask } ); }
     284static inline size_t include( const char * cs, const string & mask ) { return include( (string){ cs }, (charclass){ mask } ); }
     285
    281286static inline string include( const string & s, const charclass & mask ) { return s( 0, include( s, mask ) ); }
     287static inline string include( const string & s, const char * mask ) { return s( 0, include( s, (charclass){ mask } ) ); }
     288static inline string include( const string & s, const string & mask ) { return s( 0, include( s, (charclass){ mask } ) ); }
    282289static inline string include( const char * cs, const charclass & mask ) { const string s = cs; return s( 0, include( s, mask ) ); }
     290static inline string include( const char * cs, const char * mask ) { const string s = cs; return s( 0, include( s, (charclass){ mask } ) ); }
     291static inline string include( const char * cs, const string & mask ) { const string s = cs; return s( 0, include( s, (charclass){ mask } ) ); }
    283292
    284293size_t exclude( const string & s, const charclass & mask );
    285 static inline size_t exclude( const char * cs, const charclass & mask ) { const string s = cs; return exclude( s, mask ); }
     294static inline size_t exclude( const string & s, const char * mask ) { return exclude( s, (charclass){ mask } ); }
     295static inline size_t exclude( const string & s, const string & mask ) { return exclude( s, (charclass){ mask } ); }
     296static inline size_t exclude( const char * cs, const charclass & mask ) { return exclude( (string){ cs }, mask ); }
     297static inline size_t exclude( const char * cs, const string & mask ) { return exclude( (string){ cs }, (charclass){ mask } ); }
     298static inline size_t exclude( const char * cs, const char * mask ) { return exclude( (string){ cs }, (charclass){ mask } ); }
     299
    286300static inline string exclude( const string & s, const charclass & mask ) { return s( 0, exclude( s, mask ) ); }
     301static inline string exclude( const string & s, const char * mask ) { return s( 0, exclude( s, (charclass){ mask } ) ); }
     302static inline string exclude( const string & s, const string & mask ) { return s( 0, exclude( s, (charclass){ mask } ) ); }
    287303static inline string exclude( const char * cs, const charclass & mask ) { const string s = cs; return s( 0, exclude( s, mask ) ); }
    288 
    289 size_t include( const string & s, int (*f)( int ) );
    290 static inline size_t include( const char * cs, int (*f)( int ) ) { const string S = cs; return include( S, f ); }
    291 static inline string include( const string & s, int (*f)( int ) ) { return s( 0, include( s, f ) ); }
    292 static inline string include( const char * cs, int (*f)( int ) ) { const string s = cs; return s( 0, include( s, f ) ); }
    293 
    294 size_t exclude( const string & s, int (*f)( int ) );
    295 static inline size_t exclude( const char * cs, int (*f)( int ) ) { const string s = cs; return exclude( s, f ); }
    296 static inline string exclude( const string & s, int (*f)( int ) ) { return s( 0, exclude( s, f ) ); }
    297 static inline string exclude( const char * cs, int (*f)( int ) ) { const string s = cs; return s( 0, exclude( s, f ) ); }
     304static inline string exclude( const char * cs, const string & mask ) { const string s = cs; return s( 0, exclude( s, (charclass){ mask } ) ); }
     305static inline string exclude( const char * cs, const char * mask ) { const string s = cs; return s( 0, exclude( s, (charclass){ mask } ) ); }
     306
     307size_t include( const string & s, int (* f)( int ) );   // for C character-class functions, e.g., isdigit
     308static inline size_t include( const char * cs, int (* f)( int ) ) { return include( (string){ cs }, f ); }
     309static inline string include( const string & s, int (* f)( int ) ) { return s( 0, include( s, f ) ); }
     310static inline string include( const char * cs, int (* f)( int ) ) { const string s = cs; return s( 0, include( s, f ) ); }
     311
     312static inline size_t include( const string & s, bool (* f)( char ) ) { return include( s, (int (*)( int ))f ); }
     313static inline size_t include( const char * cs, bool (* f)( char ) ) { return include( (string){ cs }, f ); }
     314static inline string include( const string & s, bool (* f)( char ) ) { return s( 0, include( s, f ) ); }
     315static inline string include( const char * cs, bool (* f)( char ) ) { const string s = cs; return s( 0, include( s, f ) ); }
     316
     317size_t exclude( const string & s, int (* f)( int ) );   // for C character-class functions, e.g., isdigit
     318static inline size_t exclude( const char * cs, int (* f)( int ) ) { return exclude( (string){ cs }, f ); }
     319static inline string exclude( const string & s, int (* f)( int ) ) { return s( 0, exclude( s, f ) ); }
     320static inline string exclude( const char * cs, int (* f)( int ) ) { const string s = cs; return s( 0, exclude( s, f ) ); }
     321
     322static inline size_t exclude( const string & s, bool (* f)( char ) ) { return exclude( s, (int (*)( int ))f ); }
     323static inline size_t exclude( const char * cs, bool (* f)( char ) ) { return exclude( (string){ cs }, f ); }
     324static inline string exclude( const string & s, bool (* f)( char ) ) { return s( 0, exclude( s, f ) ); }
     325static inline string exclude( const char * cs, bool (* f)( char ) ) { const string s = cs; return s( 0, exclude( s, f ) ); }
    298326
    299327string replace( const string & s, const string & from, const string & to );
    300 static inline string replace( const char * s, const char * from, const char * to ) { string S = s, From = from, To = to; return replace( S, From, To ); }
    301 static inline string replace( const string & s, const char * from, const char * to ) { const string From = from, To = to; return replace( s, From, To ); }
    302 static inline string replace( const string & s, const char * from, const string & to ) { const string From = from; return replace( s, From, to ); }
    303 static inline string replace( const string & s, string & from, const char * to ) { const string To = to; return replace( s, from, To ); }
    304 
    305 string translate( const string & s, int (*f)( int ) );
    306 static inline string translate( const char * c, int (*f)( int ) ) { const string S = c; return translate( S, f ); }
     328static inline string replace( const char * s, const char * from, const char * to ) { return replace( (string){ s }, (string){ from }, (string){ to } ); }
     329static inline string replace( const string & s, const char * from, const char * to ) { return replace( s, (string){ from }, (string){ to } ); }
     330static inline string replace( const string & s, const char * from, const string & to ) { return replace( s, (string){ from }, to ); }
     331static inline string replace( const string & s, string & from, const char * to ) { return replace( s, from, (string){ to } ); }
     332
     333string translate( const string & s, int (* f)( int ) ); // for C character-class functions, e.g., isdigit
     334static inline string translate( const char * cs, int (* f)( int ) ) { return translate( (string){ cs }, f ); }
     335
     336static inline string translate( const string & s, bool (* f)( char ) ) { return translate( s, (int (*)( int ))f ); }
     337static inline string translate( const char * cs, bool (* f)( char ) ) { return translate( (string){ cs }, f ); }
    307338
    308339#ifndef _COMPILING_STRING_CFA_
Note: See TracChangeset for help on using the changeset viewer.