50 lines
772 B
C++
Executable File
50 lines
772 B
C++
Executable File
// License: Modified MIT (NON-AI)
|
|
// See the LICENSE file in the root directory for license information.
|
|
// Copyright 2025 Timothy Prepscius
|
|
|
|
#pragma once
|
|
|
|
#include "trim.h"
|
|
|
|
namespace tjp::core {
|
|
|
|
template<typename T>
|
|
T trim_right_copy(
|
|
const T &s,
|
|
const StringView &delimiters)
|
|
{
|
|
if (s.empty())
|
|
return {};
|
|
|
|
return s.substr( 0, s.find_last_not_of( delimiters ) + 1 );
|
|
}
|
|
|
|
template<typename T>
|
|
T trim_left_copy(
|
|
const T &s,
|
|
const StringView &delimiters)
|
|
{
|
|
if (s.empty())
|
|
return {};
|
|
|
|
return s.substr( s.find_first_not_of( delimiters ) );
|
|
}
|
|
|
|
template<typename T>
|
|
T trim_copy(
|
|
const T &s,
|
|
const StringView &delimiters)
|
|
{
|
|
if (s.empty())
|
|
return {};
|
|
|
|
return
|
|
trim_left_copy(
|
|
trim_right_copy(s, delimiters),
|
|
delimiters
|
|
);
|
|
}
|
|
|
|
|
|
} // namespace
|