33 lines
810 B
C
33 lines
810 B
C
|
enum UnixFSFormatType { RAW, FILE, DIRECTORY, METADATA, SYMLINK };
|
||
|
|
||
|
struct UnixFSData {
|
||
|
enum UnixFSFormatType type;
|
||
|
unsigned char* data;
|
||
|
size_t data_length;
|
||
|
};
|
||
|
|
||
|
struct FSNode {
|
||
|
unsigned char* data;
|
||
|
size_t data_size;
|
||
|
size_t* blocksizes;
|
||
|
size_t subtotal;
|
||
|
enum UnixFSFormatType type;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Copy data into a new struct
|
||
|
* @param type the type of data
|
||
|
* @param data the acutal data
|
||
|
* @param data_length the length of the data array
|
||
|
* @param result where the struct will be stored
|
||
|
* @returns true(1) on success
|
||
|
*/
|
||
|
int ipfs_unixfs_format_new(enum UnixFSFormatType type, const unsigned char* data, size_t data_length, struct UnixFSData** result);
|
||
|
|
||
|
/**
|
||
|
* Free memory allocated by _new
|
||
|
* @param data the struct
|
||
|
* @returns true(1) on success
|
||
|
*/
|
||
|
int ipfs_unixfs_format_free(struct UnixFSData* data);
|