| 824 | } |
| 825 | |
| 826 | size_t gguf_get_arr_n(const struct gguf_context * ctx, int64_t key_id) { |
| 827 | GGML_ASSERT(key_id >= 0 && key_id < gguf_get_n_kv(ctx)); |
| 828 | |
| 829 | if (ctx->kv[key_id].type == GGUF_TYPE_STRING) { |
| 830 | return ctx->kv[key_id].data_string.size(); |
| 831 | } |
| 832 | |
| 833 | const size_t type_size = gguf_type_size(ctx->kv[key_id].type); |
| 834 | GGML_ASSERT(ctx->kv[key_id].data.size() % type_size == 0); |
| 835 | return ctx->kv[key_id].data.size() / type_size; |
| 836 | } |
| 837 | |
| 838 | uint8_t gguf_get_val_u8(const struct gguf_context * ctx, int64_t key_id) { |
| 839 | GGML_ASSERT(key_id >= 0 && key_id < gguf_get_n_kv(ctx)); |