Skip to content

Runtime-file-state-new

Construct a RuntimeFileState snapshot from explicit file state and queue-runtime values. This is the low-level constructor behind the public combined file-and-queue runtime state shape used in diagnostics.

Interface

moonbit
pub fn RuntimeFileState::new(
  file : FileSinkState,
  queued~ : Bool = false,
  pending_count~ : Int = 0,
  dropped_count~ : Int = 0,
) -> RuntimeFileState {

input

  • file : FileSinkState - Embedded file sink snapshot.
  • queued : Bool - Whether queue wrapping is involved for the runtime file sink.
  • pending_count : Int - Current queued backlog count.
  • dropped_count : Int - Current dropped-record count.

output

  • RuntimeFileState - Combined runtime snapshot containing the supplied file snapshot plus queue metadata.

Explanation

Detailed rules explaining key parameters and behaviors

  • Omitting optional arguments builds a non-queued baseline around the supplied file snapshot.
  • This constructor simply packages the supplied fields into one public runtime snapshot value.
  • It does not inspect a live runtime sink or configured logger by itself.
  • RuntimeSink::file_runtime_state() and ConfiguredLogger::file_runtime_state() are the higher-level APIs that read these values from concrete runtime objects.

How to Use

Here are some specific examples provided.

When Need A Hand-built Combined File And Queue Snapshot

When tests or adapters should construct runtime file diagnostics explicitly:

moonbit
let snapshot = RuntimeFileState::new(
  FileSinkState::new("app.log", available=true),
  queued=true,
  pending_count=3,
  dropped_count=1,
)

In this example, the runtime file snapshot is built directly without querying a live runtime object.

When Need Structured Runtime Diagnostics Input Before Serialization

When code should prepare a typed runtime file state value for later export:

moonbit
let snapshot = RuntimeFileState::new(
  runtime.file_state(),
  queued=true,
  pending_count=runtime.pending_count(),
  dropped_count=runtime.dropped_count(),
)

In this example, callers still use the direct constructor while making each queue-related input explicit.

Error Case

e.g.:

  • This constructor itself does not have a normal failure mode; it only packages the provided values.

  • If callers want a snapshot directly from a live runtime sink or configured logger, file_runtime_state() is the simpler API.

Notes

  1. Use this helper when code should construct a RuntimeFileState value explicitly.

  2. Pair it with runtime_file_state_to_json(...) or stringify_runtime_file_state(...) when the snapshot should be exported.

Published from the repository docs folder with VitePress.