pub struct TimestamperBuilder { /* private fields */ }Expand description
Builder for Timestamper. Every chain method is #[must_use] so silent
misuse is caught at compile time. build() performs post-configuration
validation and returns the same typed errors the CLI’s post-parse
validation produces (e.g., Error::InvalidUtcWithNamedTz for FR-020
mirrored at the library layer).
§Example
use rusty_ts::{TimestamperBuilder, Format, TimezoneSource};
// Configure via the structured `utc()` / `tz_name()` methods that mirror
// the CLI `-u` and `--tz=<IANA>` flags.
let ts = TimestamperBuilder::new()
.format(Format::Strftime("%Y-%m-%d %H:%M:%S".into()))
.utc(true)
.build()
.expect("valid configuration");
// Conflicting configuration is caught at build() per FR-020.
let result = TimestamperBuilder::new()
.utc(true)
.tz_name("Asia/Tokyo")
.build();
assert!(result.is_err());Implementations§
Source§impl TimestamperBuilder
impl TimestamperBuilder
Sourcepub fn utc(self, utc: bool) -> Self
pub fn utc(self, utc: bool) -> Self
Request UTC rendering (mirrors the CLI -u / --utc flag).
Conflicts with tz_name; combined use causes build() to return
Error::InvalidUtcWithNamedTz per FR-020.
Sourcepub fn tz_name(self, name: impl Into<String>) -> Self
pub fn tz_name(self, name: impl Into<String>) -> Self
Request rendering in a named IANA timezone (mirrors the CLI
--tz=<IANA> flag). Conflicts with utc(true). The name is
resolved at build() time; an unrecognised name produces
Error::InvalidIanaName.
Sourcepub fn timezone(self, tz: TimezoneSource) -> Self
pub fn timezone(self, tz: TimezoneSource) -> Self
Low-level escape hatch: set the timezone source directly. When set,
overrides utc() and tz_name() configuration. Most callers should
prefer the structured utc() / tz_name() methods, which mirror the
CLI flag surface and provide the FR-020 mutex enforcement.
Sourcepub fn compat(self, mode: CompatibilityMode) -> Self
pub fn compat(self, mode: CompatibilityMode) -> Self
Set the compatibility mode. Default is CompatibilityMode::Default.
Sourcepub fn elapsed(self, anchor: ElapsedAnchor) -> Self
pub fn elapsed(self, anchor: ElapsedAnchor) -> Self
Set the elapsed-time anchor. Default is Absolute.
Sourcepub fn build(self) -> Result<Timestamper, Error>
pub fn build(self) -> Result<Timestamper, Error>
Finalize the builder. Returns a configured Timestamper or an
Error if the configuration is invalid.
Validation:
utc(true)+tz_name(...)together →Error::InvalidUtcWithNamedTz(library-layer mirror of FR-020).tz_name("...")with unrecognised IANA name →Error::InvalidIanaName.timezone(...)low-level override bypasses the above and uses whatever variant was supplied directly.
Trait Implementations§
Source§impl Clone for TimestamperBuilder
impl Clone for TimestamperBuilder
Source§fn clone(&self) -> TimestamperBuilder
fn clone(&self) -> TimestamperBuilder
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more