| #include <cstddef> |
| #include <cstdint> |
| #include <cstdio> |
| #include <cstring> |
|
|
| extern "C" { |
|
|
| int32_t llama_split_path(char * split_path, size_t maxlen, const char * path_prefix, int32_t split_no, int32_t split_count) { |
| return std::snprintf(split_path, maxlen, "%s-%05d-of-%05d.gguf", path_prefix, split_no, split_count); |
| } |
|
|
| int32_t llama_split_prefix(char * split_prefix, size_t maxlen, const char * split_path, int32_t split_no, int32_t split_count) { |
| (void) split_no; |
| (void) split_count; |
|
|
| const char * suffix = std::strrchr(split_path, '-'); |
| size_t len = suffix ? static_cast<size_t>(suffix - split_path) : std::strlen(split_path); |
| if (len + 1 > maxlen) { |
| return 0; |
| } |
| std::memcpy(split_prefix, split_path, len); |
| split_prefix[len] = '\0'; |
| return static_cast<int32_t>(len); |
| } |
|
|
| } |
|
|