Skip to content
TypeSpecificWriter

TypeSpecificWriter

TypeSpecificWriter

Description

Type-specific write callback signature

Usage example (Cross-references)

Usage examples (Cross-references)
                    LOG_INFO("Using default writer for char, because MSVC is STUPID AF");
                    if (fmt_info.flags & FMT_FLAG_CHAR) {
                        arg->writer = (TypeSpecificWriter)_write_i8;
                    } else {
                        arg->writer = (TypeSpecificWriter)_write_u64;
                        arg->writer = (TypeSpecificWriter)_write_i8;
                    } else {
                        arg->writer = (TypeSpecificWriter)_write_u64;
                    }
    #else
                // write raw if flag provided, otherwise switch to default writing
                if (fmt_info.flags & FMT_FLAG_RAW) {
                    TypeSpecificWriter write_fn = arg->writer;
    
                    // deduce the actual field size
    /// TAGS: I/O, Macro, TypeConversion, Generic
    typedef struct TypeSpecificIO {
        TypeSpecificWriter writer;
        TypeSpecificReader reader;
        void              *data;
    #endif
    
    static inline TypeSpecificIO TO_TYPE_SPECIFIC_IO_IMPL(TypeSpecificWriter w, TypeSpecificReader r, void *d) {
        return (TypeSpecificIO) {.writer = w, .reader = r, .data = d};
    }
    
    #define TO_TYPE_SPECIFIC_IO(T, d)                                                                                      \
        TO_TYPE_SPECIFIC_IO_IMPL((TypeSpecificWriter)_write_##T, (TypeSpecificReader)_read_##T, (d))
    
    #if defined(_MSC_VER) || defined(__MSC_VER)
Last updated on