2016-12-23 14:37:43 +00:00
|
|
|
enum UnixFSFormatType { RAW, UNIXFS_FILE, DIRECTORY, METADATA, SYMLINK };
|
2016-12-05 15:50:17 +00:00
|
|
|
|
|
|
|
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);
|