// BindHeader attaches the header to a libsass context ensuring // gc does not delete the pointers necessary to make this happen. func BindHeader(opts SassOptions, entries []ImportEntry) *string { idx := globalHeaders.set(entries) ptr := unsafe.Pointer(idx) imper := C.sass_make_importer( C.Sass_Importer_Fn(C.SassHeaders), C.double(0), ptr, ) impers := C.sass_make_importer_list(1) C.sass_importer_set_list_entry(impers, 0, imper) C.sass_option_set_c_headers( (*C.struct_Sass_Options)(unsafe.Pointer(opts)), impers) return idx }
// BindImporter attaches a custom importer Go function to an import in Sass func BindImporter(opts SassOptions, entries []ImportEntry) int { idx := globalImports.Set(entries) ptr := unsafe.Pointer(idx) imper := C.sass_make_importer( C.Sass_Importer_Fn(C.SassImporterHandler), C.double(0), ptr, ) impers := C.sass_make_importer_list(1) C.sass_importer_set_list_entry(impers, 0, imper) C.sass_option_set_c_importers( (*C.struct_Sass_Options)(unsafe.Pointer(opts)), impers, ) return *idx }
// SassImporterSetListEntry updates an import list with a new entry. The // index must exist in the importer list. func SassImporterSetListEntry(golst SassImporterList, idx int, ent SassImporter) { C.sass_importer_set_list_entry(golst, C.size_t(idx), ent) }