Skip to content

File-sink-available

Read whether a FileSink currently has an available underlying file handle. This helper is useful for runtime diagnostics and for deciding whether reopen or fallback behavior is needed.

Interface

moonbit
pub fn FileSink::is_available(self : FileSink) -> Bool {

input

  • self : FileSink - File sink whose current availability should be inspected.

output

  • Bool - Whether the sink currently holds an active file handle.

Explanation

Detailed rules explaining key parameters and behaviors

  • This method reports whether self.handle is currently Some(_).
  • A sink can become unavailable after open failure or after an explicit close().
  • This helper does not mutate sink state.
  • It is the direct FileSink counterpart to configured-logger file availability checks.

How to Use

Here are some specific examples provided.

When Need Direct Sink Health Checks

When code works with a concrete file sink and should verify handle readiness:

moonbit
if !sink.is_available() {
  println("file sink unavailable")
}

In this example, the caller can detect whether the sink currently has an active file handle.

When Gate Recovery Or Reopen Logic

When a reopen step should only run after loss of availability:

moonbit
let ok = sink.is_available()

In this example, the boolean result can drive later recovery behavior.

Error Case

e.g.:

  • If the sink failed to open initially, this method returns false.

  • If callers need failure counters or a richer state snapshot rather than a yes-or-no result, state() is the better API.

Notes

  1. Use this helper for lightweight file sink health checks.

  2. Pair it with reopen(...), state(), or failure-counter APIs when diagnosing file sink problems.

Published from the repository docs folder with VitePress.