2017-07-25 21:57:35 +02:00
|
|
|
/*
|
|
|
|
* Created by Martin on 25/07/2017.
|
|
|
|
*
|
|
|
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
|
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
*/
|
|
|
|
#ifndef TWOBLUECUBES_CATCH_STRING_MANIP_H_INCLUDED
|
|
|
|
#define TWOBLUECUBES_CATCH_STRING_MANIP_H_INCLUDED
|
|
|
|
|
2019-04-25 11:32:55 +02:00
|
|
|
#include "catch_stringref.h"
|
|
|
|
|
2017-07-25 21:57:35 +02:00
|
|
|
#include <string>
|
|
|
|
#include <iosfwd>
|
2019-04-25 15:19:00 +02:00
|
|
|
#include <vector>
|
2017-07-25 21:57:35 +02:00
|
|
|
|
|
|
|
namespace Catch {
|
|
|
|
|
|
|
|
bool startsWith( std::string const& s, std::string const& prefix );
|
|
|
|
bool startsWith( std::string const& s, char prefix );
|
|
|
|
bool endsWith( std::string const& s, std::string const& suffix );
|
|
|
|
bool endsWith( std::string const& s, char suffix );
|
|
|
|
bool contains( std::string const& s, std::string const& infix );
|
|
|
|
void toLowerInPlace( std::string& s );
|
|
|
|
std::string toLower( std::string const& s );
|
2019-09-07 11:31:00 +02:00
|
|
|
//! Returns a new string without whitespace at the start/end
|
2017-07-25 21:57:35 +02:00
|
|
|
std::string trim( std::string const& str );
|
2019-09-07 11:31:00 +02:00
|
|
|
//! Returns a substring of the original ref without whitespace. Beware lifetimes!
|
|
|
|
StringRef trim(StringRef ref);
|
2019-04-21 19:03:44 +02:00
|
|
|
|
|
|
|
// !!! Be aware, returns refs into original string - make sure original string outlives them
|
|
|
|
std::vector<StringRef> splitStringRef( StringRef str, char delimiter );
|
2017-07-25 21:57:35 +02:00
|
|
|
bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
|
|
|
|
|
|
|
|
struct pluralise {
|
|
|
|
pluralise( std::size_t count, std::string const& label );
|
|
|
|
|
|
|
|
friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser );
|
|
|
|
|
|
|
|
std::size_t m_count;
|
|
|
|
std::string m_label;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // TWOBLUECUBES_CATCH_STRING_MANIP_H_INCLUDED
|
|
|
|
|