MCPcopy Create free account
hub / github.com/appdevforall/CodeOnTheGo / value_string_t

Class value_string_t

subprojects/llama.cpp/common/jinja/value.h:285–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

283
284
285struct value_string_t : public value_t {
286 value_string_t() { val_str = string(); }
287 value_string_t(const std::string & v) { val_str = string(v); }
288 value_string_t(const string & v) { val_str = v; }
289 virtual std::string type() const override { return "String"; }
290 virtual string as_string() const override { return val_str; }
291 virtual std::string as_repr() const override {
292 std::ostringstream ss;
293 for (const auto & part : val_str.parts) {
294 ss << (part.is_input ? "INPUT: " : "TMPL: ") << part.val << "\n";
295 }
296 return ss.str();
297 }
298 virtual bool as_bool() const override {
299 return val_str.length() > 0;
300 }
301 virtual const func_builtins & get_builtins() const override;
302 virtual bool is_hashable() const override { return true; }
303 virtual hasher unique_hash() const noexcept override {
304 const auto type_hash = typeid(*this).hash_code();
305 auto hash = hasher();
306 hash.update(&type_hash, sizeof(type_hash));
307 val_str.hash_update(hash);
308 return hash;
309 }
310 void mark_input() {
311 val_str.mark_input();
312 }
313protected:
314 virtual bool equivalent(const value_t & other) const override {
315 return typeid(*this) == typeid(other) && val_str.str() == other.val_str.str();
316 }
317};
318using value_string = std::shared_ptr<value_string_t>;
319
320

Callers 1

test_fuzzingFunction · 0.85

Calls

no outgoing calls

Tested by 1

test_fuzzingFunction · 0.68