indexbus_kit/lanes/journal/
journal_tail.rs

1use std::time::Duration;
2
3use crate::errors::{Error, Result};
4
5use indexbus_log::{JournalSubscriber, JournalSubscriberConfig};
6
7/// Block until the next journal entry is available and return it.
8///
9/// Returns `Ok(None)` on timeout.
10pub fn tail_blocking<'a>(
11    sub: &mut JournalSubscriber,
12    buf: &'a mut [u8],
13    timeout: Option<Duration>,
14) -> Result<Option<&'a [u8]>> {
15    sub.wait_next_blocking(buf, timeout).map_err(Error::from)
16}
17
18/// Construct a `JournalSubscriberConfig` with the provided lap bound.
19pub fn subscriber_cfg(max_lap_segments: u32) -> JournalSubscriberConfig {
20    JournalSubscriberConfig { max_lap_segments }
21}