123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #include "delim_string_iter.h"
- //
- // TKeyValueDelimStringIter
- //
- void TKeyValueDelimStringIter::ReadKeyAndValue() {
- TStringBuf currentToken(*DelimIter);
- size_t pos = currentToken.find('=');
- if (pos == TString::npos) {
- ChunkValue.Clear();
- ChunkKey = currentToken;
- } else {
- ChunkKey = currentToken.SubStr(0, pos);
- ChunkValue = currentToken.SubStr(pos + 1);
- }
- }
- TKeyValueDelimStringIter::TKeyValueDelimStringIter(const TStringBuf str, const TStringBuf delim)
- : DelimIter(str, delim)
- {
- if (DelimIter.Valid())
- ReadKeyAndValue();
- }
- bool TKeyValueDelimStringIter::Valid() const {
- return DelimIter.Valid();
- }
- TKeyValueDelimStringIter& TKeyValueDelimStringIter::operator++() {
- ++DelimIter;
- if (DelimIter.Valid())
- ReadKeyAndValue();
- return *this;
- }
- const TStringBuf& TKeyValueDelimStringIter::Key() const {
- return ChunkKey;
- }
- const TStringBuf& TKeyValueDelimStringIter::Value() const {
- return ChunkValue;
- }
|