21 lines
375 B
Rust
21 lines
375 B
Rust
use std::marker::PhantomData;
|
|
|
|
#[repr(C)]
|
|
struct TakeUntil<'a, const V: char>
|
|
{
|
|
marker: PhantomData<&'a str>,
|
|
start: *const u8,
|
|
len: usize,
|
|
point: usize,
|
|
}
|
|
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn until_nul(start: *const u8, len: usize) -> TakeUntil<'a, '\0'> {
|
|
TakeUntil {
|
|
marker: PhantomData,
|
|
start,
|
|
len,
|
|
point: 0,
|
|
}
|
|
}
|