Blame include/sass/functions.h

Packit Service 7770af
#ifndef SASS_C_FUNCTIONS_H
Packit Service 7770af
#define SASS_C_FUNCTIONS_H
Packit Service 7770af
Packit Service 7770af
#include <stddef.h>
Packit Service 7770af
#include <stdbool.h>
Packit Service 7770af
#include <sass/base.h>
Packit Service 7770af
Packit Service 7770af
#ifdef __cplusplus
Packit Service 7770af
extern "C" {
Packit Service 7770af
#endif
Packit Service 7770af
Packit Service 7770af
Packit Service 7770af
// Forward declaration
Packit Service 7770af
struct Sass_Env;
Packit Service 7770af
struct Sass_Callee;
Packit Service 7770af
struct Sass_Import;
Packit Service 7770af
struct Sass_Options;
Packit Service 7770af
struct Sass_Compiler;
Packit Service 7770af
struct Sass_Importer;
Packit Service 7770af
struct Sass_Function;
Packit Service 7770af
Packit Service 7770af
// Typedef helpers for callee lists
Packit Service 7770af
typedef struct Sass_Env (*Sass_Env_Frame);
Packit Service 7770af
// Typedef helpers for callee lists
Packit Service 7770af
typedef struct Sass_Callee (*Sass_Callee_Entry);
Packit Service 7770af
// Typedef helpers for import lists
Packit Service 7770af
typedef struct Sass_Import (*Sass_Import_Entry);
Packit Service 7770af
typedef struct Sass_Import* (*Sass_Import_List);
Packit Service 7770af
// Typedef helpers for custom importer lists
Packit Service 7770af
typedef struct Sass_Importer (*Sass_Importer_Entry);
Packit Service 7770af
typedef struct Sass_Importer* (*Sass_Importer_List);
Packit Service 7770af
// Typedef defining importer signature and return type
Packit Service 7770af
typedef Sass_Import_List (*Sass_Importer_Fn)
Packit Service 7770af
  (const char* url, Sass_Importer_Entry cb, struct Sass_Compiler* compiler);
Packit Service 7770af
Packit Service 7770af
// Typedef helpers for custom functions lists
Packit Service 7770af
typedef struct Sass_Function (*Sass_Function_Entry);
Packit Service 7770af
typedef struct Sass_Function* (*Sass_Function_List);
Packit Service 7770af
// Typedef defining function signature and return type
Packit Service 7770af
typedef union Sass_Value* (*Sass_Function_Fn)
Packit Service 7770af
  (const union Sass_Value*, Sass_Function_Entry cb, struct Sass_Compiler* compiler);
Packit Service 7770af
Packit Service 7770af
// Type of function calls
Packit Service 7770af
enum Sass_Callee_Type {
Packit Service 7770af
  SASS_CALLEE_MIXIN,
Packit Service 7770af
  SASS_CALLEE_FUNCTION,
Packit Service 7770af
  SASS_CALLEE_C_FUNCTION,
Packit Service 7770af
};
Packit Service 7770af
Packit Service 7770af
// Creator for sass custom importer return argument list
Packit Service 7770af
ADDAPI Sass_Importer_List ADDCALL sass_make_importer_list (size_t length);
Packit Service 7770af
ADDAPI Sass_Importer_Entry ADDCALL sass_importer_get_list_entry (Sass_Importer_List list, size_t idx);
Packit Service 7770af
ADDAPI void ADDCALL sass_importer_set_list_entry (Sass_Importer_List list, size_t idx, Sass_Importer_Entry entry);
Packit Service 7770af
ADDAPI void ADDCALL sass_delete_importer_list (Sass_Importer_List list);
Packit Service 7770af
Packit Service 7770af
Packit Service 7770af
// Creators for custom importer callback (with some additional pointer)
Packit Service 7770af
// The pointer is mostly used to store the callback into the actual binding
Packit Service 7770af
ADDAPI Sass_Importer_Entry ADDCALL sass_make_importer (Sass_Importer_Fn importer, double priority, void* cookie);
Packit Service 7770af
Packit Service 7770af
// Getters for import function descriptors
Packit Service 7770af
ADDAPI Sass_Importer_Fn ADDCALL sass_importer_get_function (Sass_Importer_Entry cb);
Packit Service 7770af
ADDAPI double ADDCALL sass_importer_get_priority (Sass_Importer_Entry cb);
Packit Service 7770af
ADDAPI void* ADDCALL sass_importer_get_cookie (Sass_Importer_Entry cb);
Packit Service 7770af
Packit Service 7770af
// Deallocator for associated memory
Packit Service 7770af
ADDAPI void ADDCALL sass_delete_importer (Sass_Importer_Entry cb);
Packit Service 7770af
Packit Service 7770af
// Creator for sass custom importer return argument list
Packit Service 7770af
ADDAPI Sass_Import_List ADDCALL sass_make_import_list (size_t length);
Packit Service 7770af
// Creator for a single import entry returned by the custom importer inside the list
Packit Service 7770af
ADDAPI Sass_Import_Entry ADDCALL sass_make_import_entry (const char* path, char* source, char* srcmap);
Packit Service 7770af
ADDAPI Sass_Import_Entry ADDCALL sass_make_import (const char* imp_path, const char* abs_base, char* source, char* srcmap);
Packit Service 7770af
// set error message to abort import and to print out a message (path from existing object is used in output)
Packit Service 7770af
ADDAPI Sass_Import_Entry ADDCALL sass_import_set_error(Sass_Import_Entry import, const char* message, size_t line, size_t col);
Packit Service 7770af
Packit Service 7770af
// Setters to insert an entry into the import list (you may also use [] access directly)
Packit Service 7770af
// Since we are dealing with pointers they should have a guaranteed and fixed size
Packit Service 7770af
ADDAPI void ADDCALL sass_import_set_list_entry (Sass_Import_List list, size_t idx, Sass_Import_Entry entry);
Packit Service 7770af
ADDAPI Sass_Import_Entry ADDCALL sass_import_get_list_entry (Sass_Import_List list, size_t idx);
Packit Service 7770af
Packit Service 7770af
// Getters for callee entry
Packit Service 7770af
ADDAPI const char* ADDCALL sass_callee_get_name (Sass_Callee_Entry);
Packit Service 7770af
ADDAPI const char* ADDCALL sass_callee_get_path (Sass_Callee_Entry);
Packit Service 7770af
ADDAPI size_t ADDCALL sass_callee_get_line (Sass_Callee_Entry);
Packit Service 7770af
ADDAPI size_t ADDCALL sass_callee_get_column (Sass_Callee_Entry);
Packit Service 7770af
ADDAPI enum Sass_Callee_Type ADDCALL sass_callee_get_type (Sass_Callee_Entry);
Packit Service 7770af
ADDAPI Sass_Env_Frame ADDCALL sass_callee_get_env (Sass_Callee_Entry);
Packit Service 7770af
Packit Service 7770af
// Getters and Setters for environments (lexical, local and global)
Packit Service 7770af
ADDAPI union Sass_Value* ADDCALL sass_env_get_lexical (Sass_Env_Frame, const char*);
Packit Service 7770af
ADDAPI void ADDCALL sass_env_set_lexical (Sass_Env_Frame, const char*, union Sass_Value*);
Packit Service 7770af
ADDAPI union Sass_Value* ADDCALL sass_env_get_local (Sass_Env_Frame, const char*);
Packit Service 7770af
ADDAPI void ADDCALL sass_env_set_local (Sass_Env_Frame, const char*, union Sass_Value*);
Packit Service 7770af
ADDAPI union Sass_Value* ADDCALL sass_env_get_global (Sass_Env_Frame, const char*);
Packit Service 7770af
ADDAPI void ADDCALL sass_env_set_global (Sass_Env_Frame, const char*, union Sass_Value*);
Packit Service 7770af
Packit Service 7770af
// Getters for import entry
Packit Service 7770af
ADDAPI const char* ADDCALL sass_import_get_imp_path (Sass_Import_Entry);
Packit Service 7770af
ADDAPI const char* ADDCALL sass_import_get_abs_path (Sass_Import_Entry);
Packit Service 7770af
ADDAPI const char* ADDCALL sass_import_get_source (Sass_Import_Entry);
Packit Service 7770af
ADDAPI const char* ADDCALL sass_import_get_srcmap (Sass_Import_Entry);
Packit Service 7770af
// Explicit functions to take ownership of these items
Packit Service 7770af
// The property on our struct will be reset to NULL
Packit Service 7770af
ADDAPI char* ADDCALL sass_import_take_source (Sass_Import_Entry);
Packit Service 7770af
ADDAPI char* ADDCALL sass_import_take_srcmap (Sass_Import_Entry);
Packit Service 7770af
// Getters from import error entry
Packit Service 7770af
ADDAPI size_t ADDCALL sass_import_get_error_line (Sass_Import_Entry);
Packit Service 7770af
ADDAPI size_t ADDCALL sass_import_get_error_column (Sass_Import_Entry);
Packit Service 7770af
ADDAPI const char* ADDCALL sass_import_get_error_message (Sass_Import_Entry);
Packit Service 7770af
Packit Service 7770af
// Deallocator for associated memory (incl. entries)
Packit Service 7770af
ADDAPI void ADDCALL sass_delete_import_list (Sass_Import_List);
Packit Service 7770af
// Just in case we have some stray import structs
Packit Service 7770af
ADDAPI void ADDCALL sass_delete_import (Sass_Import_Entry);
Packit Service 7770af
Packit Service 7770af
Packit Service 7770af
Packit Service 7770af
// Creators for sass function list and function descriptors
Packit Service 7770af
ADDAPI Sass_Function_List ADDCALL sass_make_function_list (size_t length);
Packit Service 7770af
ADDAPI Sass_Function_Entry ADDCALL sass_make_function (const char* signature, Sass_Function_Fn cb, void* cookie);
Packit Service 7770af
ADDAPI void ADDCALL sass_delete_function (Sass_Function_Entry entry);
Packit Service 7770af
ADDAPI void ADDCALL sass_delete_function_list (Sass_Function_List list);
Packit Service 7770af
Packit Service 7770af
// Setters and getters for callbacks on function lists
Packit Service 7770af
ADDAPI Sass_Function_Entry ADDCALL sass_function_get_list_entry(Sass_Function_List list, size_t pos);
Packit Service 7770af
ADDAPI void ADDCALL sass_function_set_list_entry(Sass_Function_List list, size_t pos, Sass_Function_Entry cb);
Packit Service 7770af
Packit Service 7770af
// Getters for custom function descriptors
Packit Service 7770af
ADDAPI const char* ADDCALL sass_function_get_signature (Sass_Function_Entry cb);
Packit Service 7770af
ADDAPI Sass_Function_Fn ADDCALL sass_function_get_function (Sass_Function_Entry cb);
Packit Service 7770af
ADDAPI void* ADDCALL sass_function_get_cookie (Sass_Function_Entry cb);
Packit Service 7770af
Packit Service 7770af
Packit Service 7770af
#ifdef __cplusplus
Packit Service 7770af
} // __cplusplus defined.
Packit Service 7770af
#endif
Packit Service 7770af
Packit Service 7770af
#endif