MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / Trim

Method Trim

common/values/string_value.cc:1065–1094  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1063} // namespace
1064
1065StringValue StringValue::Trim() const {
1066 switch (value_.GetKind()) {
1067 case common_internal::ByteStringKind::kSmall: {
1068 std::pair<size_t, size_t> trims = (TrimImpl)(value_.GetSmall());
1069 StringValue result;
1070 result.value_.rep_.header.kind = common_internal::ByteStringKind::kSmall;
1071 result.value_.rep_.small.size =
1072 value_.rep_.small.size - trims.first - trims.second;
1073 std::memcpy(result.value_.rep_.small.data,
1074 value_.rep_.small.data + trims.first,
1075 result.value_.rep_.small.size);
1076 result.value_.rep_.small.arena = value_.GetSmallArena();
1077 return result;
1078 }
1079 case common_internal::ByteStringKind::kMedium: {
1080 std::pair<size_t, size_t> trims = (TrimImpl)(value_.GetMedium());
1081 StringValue result;
1082 result.value_.rep_.header.kind = common_internal::ByteStringKind::kMedium;
1083 result.value_.rep_.medium.size =
1084 value_.rep_.medium.size - trims.first - trims.second;
1085 result.value_.rep_.medium.data = value_.rep_.medium.data + trims.first;
1086 result.value_.rep_.medium.owner = value_.rep_.medium.owner;
1087 common_internal::StrongRef(result.value_.GetMediumReferenceCount());
1088 return result;
1089 }
1090 case common_internal::ByteStringKind::kLarge: {
1091 return StringValue::Wrap((TrimImpl)(value_.GetLarge()));
1092 }
1093 }
1094}
1095
1096namespace {
1097

Callers 2

TEST_FFunction · 0.80
TrimFunction · 0.80

Calls 4

StrongRefFunction · 0.85
GetKindMethod · 0.80
WrapFunction · 0.70

Tested by 1

TEST_FFunction · 0.64