pub fn parse_string_segments(
content: &str,
span_start: usize,
is_raw: bool,
) -> Vec<StringSegment>Expand description
解析字符串内容为片段列表。
该函数处理以下功能:
- 插值解析:解析
{expr}格式的插值表达式 - 转义处理:处理
\{和\}转义序列 - Fluent 标记:识别
߷(Gwot, U+07DF) 符号标记的 Fluent 变量 - Raw String 处理:前缀为
r时不解析插值
§参数
content- 字符串内容(不含引号)span_start- 内容在源码中的起始位置is_raw- 是否为 raw string(raw string 不解析插值)
§返回
返回解析后的字符串片段列表
§示例
use oak_valkyrie::parser::parse_string_segments;
// 普通文本
let segments = parse_string_segments("hello", 0, false);
assert_eq!(segments.len(), 1);
// 插值表达式
let segments = parse_string_segments("hello {name}!", 0, false);
assert_eq!(segments.len(), 3);
// Raw string 不解析插值
let segments = parse_string_segments("hello {name}!", 0, true);
assert_eq!(segments.len(), 1);