@@ -18297,6 +18297,19 @@ size_t ggml_quantize_chunk(enum ggml_type type, const float * src, void * dst, i
18297
18297
18298
18298
////////////////////////////////////////////////////////////////////////////////
18299
18299
18300
+ enum gguf_type {
18301
+ GGUF_TYPE_UINT8 = 0,
18302
+ GGUF_TYPE_INT8 = 1,
18303
+ GGUF_TYPE_UINT16 = 2,
18304
+ GGUF_TYPE_INT16 = 3,
18305
+ GGUF_TYPE_UINT32 = 4,
18306
+ GGUF_TYPE_INT32 = 5,
18307
+ GGUF_TYPE_FLOAT32 = 6,
18308
+ GGUF_TYPE_BOOL = 7,
18309
+ GGUF_TYPE_STRING = 8,
18310
+ GGUF_TYPE_ARRAY = 9,
18311
+ };
18312
+
18300
18313
struct gguf_str {
18301
18314
uint32_t n;
18302
18315
char * data;
@@ -18670,77 +18683,40 @@ enum gguf_type gguf_get_type(struct gguf_context * ctx, int i) {
18670
18683
return ctx->header.kv[i].type;
18671
18684
}
18672
18685
18673
- void gguf_get_val(struct gguf_context * ctx, int i, void * val) {
18674
- struct gguf_kv * kv = &ctx->header.kv[i];
18675
-
18676
- switch (kv->type) {
18677
- case GGUF_TYPE_UINT8: memcpy(val, &kv->value.uint8, sizeof(uint8_t)); break;
18678
- case GGUF_TYPE_INT8: memcpy(val, &kv->value.int8, sizeof(int8_t)); break;
18679
- case GGUF_TYPE_UINT16: memcpy(val, &kv->value.uint16, sizeof(uint16_t)); break;
18680
- case GGUF_TYPE_INT16: memcpy(val, &kv->value.int16, sizeof(int16_t)); break;
18681
- case GGUF_TYPE_UINT32: memcpy(val, &kv->value.uint32, sizeof(uint32_t)); break;
18682
- case GGUF_TYPE_INT32: memcpy(val, &kv->value.int32, sizeof(int32_t)); break;
18683
- case GGUF_TYPE_FLOAT32: memcpy(val, &kv->value.float32, sizeof(float)); break;
18684
- case GGUF_TYPE_BOOL: memcpy(val, &kv->value.bool_, sizeof(bool)); break;
18685
- case GGUF_TYPE_STRING: memcpy(val, &kv->value.str.data, sizeof(char *)); break;
18686
- default:
18687
- GGML_ASSERT("gguf: not implemented");
18688
- break;
18689
- }
18690
- }
18691
-
18692
18686
uint8_t gguf_get_val_u8(struct gguf_context * ctx, int i) {
18693
- uint8_t val;
18694
- gguf_get_val(ctx, i, &val);
18695
- return val;
18687
+ return ctx->header.kv[i].value.uint8;
18696
18688
}
18697
18689
18698
18690
int8_t gguf_get_val_i8(struct gguf_context * ctx, int i) {
18699
- int8_t val;
18700
- gguf_get_val(ctx, i, &val);
18701
- return val;
18691
+ return ctx->header.kv[i].value.int8;
18702
18692
}
18703
18693
18704
18694
uint16_t gguf_get_val_u16(struct gguf_context * ctx, int i) {
18705
- uint16_t val;
18706
- gguf_get_val(ctx, i, &val);
18707
- return val;
18695
+ return ctx->header.kv[i].value.uint16;
18708
18696
}
18709
18697
18710
18698
int16_t gguf_get_val_i16(struct gguf_context * ctx, int i) {
18711
- int16_t val;
18712
- gguf_get_val(ctx, i, &val);
18713
- return val;
18699
+ return ctx->header.kv[i].value.int16;
18714
18700
}
18715
18701
18716
18702
uint32_t gguf_get_val_u32(struct gguf_context * ctx, int i) {
18717
- uint32_t val;
18718
- gguf_get_val(ctx, i, &val);
18719
- return val;
18703
+ return ctx->header.kv[i].value.uint32;
18720
18704
}
18721
18705
18722
18706
int32_t gguf_get_val_i32(struct gguf_context * ctx, int i) {
18723
- int32_t val;
18724
- gguf_get_val(ctx, i, &val);
18725
- return val;
18707
+ return ctx->header.kv[i].value.int32;
18726
18708
}
18727
18709
18728
18710
float gguf_get_val_f32(struct gguf_context * ctx, int i) {
18729
- float val;
18730
- gguf_get_val(ctx, i, &val);
18731
- return val;
18711
+ return ctx->header.kv[i].value.float32;
18732
18712
}
18733
18713
18734
18714
bool gguf_get_val_bool(struct gguf_context * ctx, int i) {
18735
- bool val;
18736
- gguf_get_val(ctx, i, &val);
18737
- return val;
18715
+ return ctx->header.kv[i].value.bool_;
18738
18716
}
18739
18717
18740
18718
const char * gguf_get_val_str (struct gguf_context * ctx, int i) {
18741
- char * val;
18742
- gguf_get_val(ctx, i, &val);
18743
- return val;
18719
+ return ctx->header.kv[i].value.str.data;
18744
18720
}
18745
18721
18746
18722
int gguf_get_n_tensors(struct gguf_context * ctx) {
0 commit comments