| 1047 | } |
| 1048 | |
| 1049 | void gguf_set_arr_data(struct gguf_context * ctx, const char * key, enum gguf_type type, const void * data, size_t n) { |
| 1050 | gguf_check_reserved_keys(key, data); |
| 1051 | gguf_remove_key(ctx, key); |
| 1052 | |
| 1053 | const size_t nbytes = n*gguf_type_size(type); |
| 1054 | std::vector<int8_t> tmp(nbytes); |
| 1055 | if (!tmp.empty()) { |
| 1056 | memcpy(tmp.data(), data, nbytes); |
| 1057 | } |
| 1058 | ctx->kv.emplace_back(key, tmp); |
| 1059 | ctx->kv.back().cast(type); |
| 1060 | } |
| 1061 | |
| 1062 | void gguf_set_arr_str(struct gguf_context * ctx, const char * key, const char ** data, size_t n) { |
| 1063 | gguf_check_reserved_keys(key, data); |