7 data.emplace_back( type, -1, -1 );
23 if ( session < requestedSize ) {
24 session= requestedSize;
30 if ( actual < requestedSize ) {
31 actual= (requestedSize + ( actual < 0 ? 0 : growthPadding ));
42 auto it=
data.begin();
43 while( it!=
data.end() ) {
47 target <<
',' << (*it).session;
71 # define PARSERROR ALIB_WARNING( "STRINGS", \
72 "Error reading tab stops string \"{}\":\n at position ", \
73 src, src.Length() - parser.Length() )
88 else { PARSERROR
break; }
99 data.emplace_back( type, actual, sessionValue );
109 for(
auto& entry :
data ) {
110 integer actDiff= entry.session - entry.actual;
117 if( entry.actual > lastTabStop ) {
118 lastTabStop= entry.actual;
119 entry.actual= entry.session + tabDiff;
121 lastTabStop= entry.actual;
123 entry.actual= entry.session + tabDiff;
126 entry.actual = entry.session;
TAString & DeleteEnd(integer regionLength)
TAString & _(const TAppendable &src)
constexpr integer Length() const
constexpr bool IsEmpty() const
bool EndsWith(const TString &needle) const
integer LastIndexOf(TChar needle, integer startIndex=MAX_LEN) const
bool ConsumeInt(std::integral auto &result, TNumberFormat< TChar > *numberFormat=nullptr)
TSubstring & Trim(const TCString< TChar > &whiteSpaces=CStringConstantsTraits< TChar >::DefaultWhitespaces())
integer Actual(Types type, integer requestedSize, integer growthPadding)
void Export(AString &target)
bool dirty
Determines whether any value was changed sincel last #".Reset".
void Import(const String &source, lang::CurrentData session=lang::CurrentData::Clear)
std::vector< Entry > data
The current and measured sizes.
Types
The entry type, tab stop or field width.
@ Field
denotes a field width entry.
@ Tabstop
denotes a tab stop entry.
TSubstring< TChar > & Next(lang::Whitespaces trimming=lang::Whitespaces::Trim, TChar newDelim='\0')
@ Clear
Chooses to clear existing data.
@ Trim
Trim whitespaces away.
strings::util::TTokenizer< character > Tokenizer
Type alias in namespace #"%alib".
lang::integer integer
Type alias in namespace #"%alib".
strings::TString< character > String
Type alias in namespace #"%alib".
strings::TSubstring< character > Substring
Type alias in namespace #"%alib".
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace #"%alib".