///|
/// Find the first character that can start inline Markdown syntax.
#inline
fn find_inline_marker_candidate_scalar(
text : String,
start : Int,
end : Int,
) -> Int {
for pos in start.. Int =
#| (text, start, end) => {
#| const bridge = globalThis.__mizchiMarkdownInlineMarkerSimd;
#| return bridge === undefined
#| ? -2
#| : bridge.findInlineMarkerUtf8(text, start, end);
#| }
///|
/// Use the copy-inclusive Wasm path only for runs long enough to amortize
/// TextEncoder and the JS/Wasm boundary.
#cfg(target="js")
fn find_inline_marker_candidate(text : String, start : Int, end : Int) -> Int {
guard end - start >= 64 else {
return find_inline_marker_candidate_scalar(text, start, end)
}
match find_inline_marker_wasm_utf8(text, start, end) {
-1 => end
-2 => find_inline_marker_candidate_scalar(text, start, end)
found => found
}
}
///|
#cfg(not(target="js"))
#inline
fn find_inline_marker_candidate(text : String, start : Int, end : Int) -> Int {
find_inline_marker_candidate_scalar(text, start, end)
}