This is most important usage of GConv. Input is desription of beginning and final state of all partitions which may change, the convert() provides the main functionality. During this conversion is required temporary free space, the function getsize_struct() returns the quantity, this free space must be passed to convert() - GConv API provides struct free_space.
source in src/libsurprise/gconv/getsize.c
int convert(size_t impnum, struct partition *imported, size_t expnum, struct partition *exported, size_t spcnum, struct space *free_space, int badblock_check, PROGRESS_PARAM, ERR_PARAM)
source in src/libsurprise/gconv/gc.c