| /* |
| * 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 |
| |
| #include "catch_stringref.h" |
| |
| #include <string> |
| #include <iosfwd> |
| #include <vector> |
| |
| 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 ); |
| //! Returns a new string without whitespace at the start/end |
| std::string trim( std::string const& str ); |
| //! Returns a substring of the original ref without whitespace. Beware lifetimes! |
| StringRef trim(StringRef ref); |
| |
| // !!! Be aware, returns refs into original string - make sure original string outlives them |
| std::vector<StringRef> splitStringRef( StringRef str, char delimiter ); |
| 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 |
| |