# General Operators --- ## Assign `:` ## Shadow `::` ## Cast `$` ```c typedef kpl_result kpl_interface_cast(kpl_type to, const kpl_any from); ``` ## ``log` Configurable logger, destination can be changed ```c typedef void kpl_interface_log(kpl_type type, const kpl_any any, const FILE *file, int32_t idnt, uint32_t options); ``` ## ``debugger` ## ``thread_id` ```text Thread_id `unique I32 ``` ## ``thread_count` ## ``format` ```text Result[String] : Value[String]`format Any ``` ### Formatting #### Replace Use `%` to indicate an item from `Any`, use `\%` for a literal `%` #### Colors Use `#NAME#` to change the text color, use `#` to reset the text color, use `\#` for a literal `#` ```text BOLD FAINT ITALIC UNDERLINE - UL BACKGROUND - BG LIGHT BLACK RED GREEN YELLOW BLUE MAGENTA CYAN GREY WHITE ``` `#NAME#NAME#` use single `#` to apply multiple colors at once ```c typedef kpl_result kpl_interface_format(const kpl_buffer *format, [const kpl_any]..., NULL); ``` ## ``panic` Stops execution and prints `Any` to `stdout` ```text `panic any ``` ## ``type` ## ``sync_type` ## ``async_type` ## ``copy` ```c typedef kpl_result kpl_interface_copy(const kpl_any any); ``` ## ``hash` ```c typedef uint64_t kpl_interface_hash(const kpl_any any); ```