MtFmt 1.0.0
MtFmt is a format library on embed. system and wrote by pure C.
载入中...
搜索中...
未找到
宏定义 | 函数
mm_fmt.c 文件参考

字符串格式化 更多...

#include "mm_fmt.h"
#include "mm_type.h"

宏定义

#define MSTR_IMP_SOURCES   1
 
#define AS_ARRAY_TYPE(t)    ((MStrFmtArgType)((uint32_t)(t) | MStrFmtArgType_Array_Bit))
 将元素类型T转换为对应的数组类型值
 

函数

static mstr_result_t process_replacement_field (char const **ppfmt, MStrFmtParseResult *parser_result)
 解析replacement field
 
static mstr_result_t load_value (MStrFmtFormatArgument *arg, MStrFmtArgsContext *ctx, usize_t arg_id, MStrFmtArgType spec_type)
 从可变参数里面载入值
 
static mstr_result_t format_value (MString *res_str, const MStrFmtParseResult *parser_result, const MStrFmtFormatArgument *arg)
 格式化值
 
static mstr_result_t format_array (MString *res_str, const MStrFmtParseResult *parser_result, const MStrFmtFormatArgument *arg, const MStrFmtFormatArgument *sz_arg)
 格式化值
 
static iptr_t array_get_item (const MStrFmtFormatArgument *array, usize_t index)
 按照数组下标进行访问
 
static mstr_result_t copy_to_output (MString *out_str, const MStrFmtFormatDescript *fmt_spec, const MString *src_str)
 把数据复制到输出
 
static mstr_result_t convert (MString *str, const MStrFmtParseResult *parser_result, const MStrFmtFormatArgument *arg)
 转换单个的值到buffer
 
static mstr_result_t convert_string (MString *str, iptr_t value, const MStrFmtFormatSpec *spec)
 对字符串格式化
 
static mstr_result_t convert_time (MString *str, iptr_t value, const MStrFmtFormatSpec *spec)
 对日期和时间值格式化
 
static mstr_result_t convert_int (MString *str, int32_t value, MStrFmtSignDisplay sign, MStrFmtFormatType ftyp)
 对有符号整数进行格式化
 
static mstr_result_t convert_uint (MString *str, uint32_t value, MStrFmtFormatType ftyp)
 对无符号整数进行格式化
 
static mstr_result_t convert_quat (MString *str, int32_t value, uint32_t qbits, MStrFmtSignDisplay sign)
 对有符号量化值进行格式化
 
static mstr_result_t convert_uquat (MString *str, uint32_t value, uint32_t qbits)
 对无符号量化值进行格式化
 
static mstr_result_t fmt_type_as_integer_index (MStrFmtIntIndex *index, MStrFmtFormatType typ)
 把 MStrFmtFormatType 转为 整数的index
 
 mstr_format (MString *res_str, const char *fmt, usize_t fmt_place,...)
 格式化字符串
 
 mstr_vformat (const char *fmt, MString *res_str, usize_t fmt_place, va_list *ap_ptr)
 格式化字符串
 
 mstr_context_format (MString *res_str, const char *fmt, MStrFmtArgsContext *ctx)
 按照上下文进行格式化
 

详细描述

字符串格式化

作者
向阳 (hinat.nosp@m.a.ho.nosp@m.shino.nosp@m.@fox.nosp@m.mail..nosp@m.com)
版本
1.0
日期
2023-03-21

宏定义说明

◆ AS_ARRAY_TYPE

#define AS_ARRAY_TYPE (   t)     ((MStrFmtArgType)((uint32_t)(t) | MStrFmtArgType_Array_Bit))

将元素类型T转换为对应的数组类型值

◆ MSTR_IMP_SOURCES

#define MSTR_IMP_SOURCES   1

函数说明

◆ array_get_item()

static iptr_t array_get_item ( const MStrFmtFormatArgument array,
usize_t  index 
)
static

按照数组下标进行访问

参数
array数组
index下标位置
返回
iptr_t: & array[index]

◆ convert()

static mstr_result_t convert ( MString str,
const MStrFmtParseResult parser_result,
const MStrFmtFormatArgument arg 
)
static

转换单个的值到buffer

参数
[out]str转换输出
[in]parser_resultparser结果
[in]arg需要转换的值

◆ convert_int()

static mstr_result_t convert_int ( MString str,
int32_t  value,
MStrFmtSignDisplay  sign,
MStrFmtFormatType  ftyp 
)
static

对有符号整数进行格式化

◆ convert_quat()

static mstr_result_t convert_quat ( MString str,
int32_t  value,
uint32_t  qbits,
MStrFmtSignDisplay  sign 
)
static

对有符号量化值进行格式化

◆ convert_string()

static mstr_result_t convert_string ( MString str,
iptr_t  value,
const MStrFmtFormatSpec spec 
)
static

对字符串格式化

◆ convert_time()

static mstr_result_t convert_time ( MString str,
iptr_t  value,
const MStrFmtFormatSpec spec 
)
static

对日期和时间值格式化

◆ convert_uint()

static mstr_result_t convert_uint ( MString str,
uint32_t  value,
MStrFmtFormatType  ftyp 
)
static

对无符号整数进行格式化

◆ convert_uquat()

static mstr_result_t convert_uquat ( MString str,
uint32_t  value,
uint32_t  qbits 
)
static

对无符号量化值进行格式化

◆ copy_to_output()

static mstr_result_t copy_to_output ( MString out_str,
const MStrFmtFormatDescript fmt_spec,
const MString src_str 
)
static

把数据复制到输出

参数
[in,out]out_str& 转换输出的buff
[in]pout_endbuff大小
[in]fmt_spec格式化解析出来的信息
[in]src_str需要复制的字符串

◆ fmt_type_as_integer_index()

static mstr_result_t fmt_type_as_integer_index ( MStrFmtIntIndex index,
MStrFmtFormatType  typ 
)
static

把 MStrFmtFormatType 转为 整数的index

参数
[out]index结果
[in]typMStrFmtFormatType

◆ format_array()

static mstr_result_t format_array ( MString res_str,
const MStrFmtParseResult parser_result,
const MStrFmtFormatArgument arg,
const MStrFmtFormatArgument sz_arg 
)
static

格式化值

参数
[out]res_strbuff
[in]parser_result格式化描述
[in]arg
[in]sz_arg数组大小

◆ format_value()

static mstr_result_t format_value ( MString res_str,
const MStrFmtParseResult parser_result,
const MStrFmtFormatArgument arg 
)
static

格式化值

参数
[out]res_strbuff
[in]parser_result格式化描述
[in]arg

◆ load_value()

static mstr_result_t load_value ( MStrFmtFormatArgument arg,
MStrFmtArgsContext ctx,
usize_t  arg_id,
MStrFmtArgType  spec_type 
)
static

从可变参数里面载入值

参数
[out]arg返回值
[in,out]ctxContext
[in]arg_id参数id
[in]spec_type指定的参数值类型

◆ mstr_context_format()

mstr_context_format ( MString res_str,
const char *  fmt,
MStrFmtArgsContext ctx 
)

按照上下文进行格式化

参数
[out]res_str格式化结果
[in]fmt格式化串
[in]ctx格式化context

◆ mstr_format()

mstr_format ( MString res_str,
const char *  fmt,
usize_t  fmt_place,
  ... 
)

格式化字符串

参数
[in]fmt格式化串
[out]res_str格式化结果输出
[in]fmt_place预期fmt中使用的参数数目. 最大不超过16(MFMT_PLACE_MAX_NUM)
返回
minfmt_result_t: 格式化结果

◆ mstr_vformat()

mstr_vformat ( const char *  fmt,
MString res_str,
usize_t  fmt_place,
va_list *  ap_ptr 
)

格式化字符串

参数
[in]fmt格式化串
[out]res_str格式化结果输出
[in]fmt_place预期fmt中使用的参数数目. 最大不超过16(MFMT_PLACE_MAX_NUM)
[in]ap_ptr&ap
返回
minfmt_result_t: 格式化结果

◆ process_replacement_field()

static mstr_result_t process_replacement_field ( char const **  ppfmt,
MStrFmtParseResult parser_result 
)
static

解析replacement field

参数
[in,out]ppfmt& 格式化串
[out]res_str结果输出
[out]parser_result解析结果