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.