<commit_before><commit_msg>Add missing file<commit_after>#include "shadowdive/fonts.h"
#include "shadowdive/rgba_image.h"
#include "shadowdive/internal/reader.h"
#include "shadowdive/error.h"
#include <stdlib.h>

#include <stdio.h>

sd_font_small* sd_font_small_create() {
    return (sd_font_small*)malloc(sizeof(sd_font_small));
}

sd_font_big* sd_font_big_create() {
    return (sd_font_big*)malloc(sizeof(sd_font_big));
}

void sd_font_small_delete(sd_font_small *font) {
    if(font) { free(font); }
}

void sd_font_big_delete(sd_font_big *font) {
    if(font) { free(font); }
}

int sd_font_big_load(sd_font_big *font, const char *file) {
    sd_reader *r = sd_reader_open(file);
    if(!r) {
        return SD_FILE_OPEN_ERROR;
    }
    
    for(int i = 0; i < 224; i++) {
        sd_read_buf(r, font->chars[i].data, 8);
        if(!sd_reader_ok(r)) {
            sd_reader_close(r);
            return SD_FILE_PARSE_ERROR;
        }
    }
    
    sd_reader_close(r);
    return SD_SUCCESS;
}

int sd_font_small_load(sd_font_small *font, const char *file) {
    sd_reader *r = sd_reader_open(file);
    if(!r) {
        return SD_FILE_OPEN_ERROR;
    }
    
    for(int i = 0; i < 224; i++) {
        sd_read_buf(r, font->chars[i].data, 8);
        if(!sd_reader_ok(r)) {
            sd_reader_close(r);
            return SD_FILE_PARSE_ERROR;
        }
    }
    
    sd_reader_close(r);
    return SD_SUCCESS;
}

sd_rgba_image* sd_font_big_decode(sd_char_big *ch, uint32_t color) {
    sd_rgba_image *o = sd_rgba_image_create(8, 6);

    return o;
}

sd_rgba_image* sd_font_small_decode(sd_char_small *ch, uint32_t color) {
    sd_rgba_image *o = sd_rgba_image_create(8, 8);
    
    return o;
}
{'fraction_non_alphanumeric': 0.1284457478005865, 'fraction_numerical': 0.010557184750733138, 'mean_word_length': 3.265, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5162067', 'n_tokens_mistral': 703, 'n_tokens_neox': 684, 'n_words': 110}