From bba206be78ed7da59b4c4f70688f76221e725a64 Mon Sep 17 00:00:00 2001 From: Nanaloveyuki Date: Sun, 14 Jun 2026 10:55:39 +0800 Subject: [PATCH] :memo: clarify library async target replacement --- docs/api/library-async-logger-with-target.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/api/library-async-logger-with-target.md b/docs/api/library-async-logger-with-target.md index c1fda73..8a13977 100644 --- a/docs/api/library-async-logger-with-target.md +++ b/docs/api/library-async-logger-with-target.md @@ -2,8 +2,8 @@ name: library-async-logger-with-target group: api category: facade -update-time: 20260613 -description: Replace the default target carried by a LibraryAsyncLogger facade while rewrapping the same underlying async logger state. +update-time: 20260614 +description: Replace the default target carried by a LibraryAsyncLogger facade while rewrapping the derived async logger state behind the same library-facing surface. key-word: - async - library @@ -37,11 +37,11 @@ pub fn[S] LibraryAsyncLogger::with_target( Detailed rules explaining key parameters and behaviors -- This API delegates to the wrapped async logger's `with_target(...)` behavior and then re-wraps the result. -- The returned value keeps the same sink type, queue state, async config, and failure/lifecycle state because only the default target field changes. +- This API delegates to the wrapped async logger's `with_target(...)` behavior and then re-wraps the result as another `LibraryAsyncLogger[S]`. +- The original facade is not mutated. The returned facade stores the replacement target while the source facade keeps its previous target. +- Timestamp behavior, enabled-level gating, sink type, queue state, async config, and failure/lifecycle state stay the same because only the default target field changes. - This replaces the default target instead of composing it. - Async state helpers remain hidden behind the narrower facade after rewrapping; use `to_async_logger()` if later code needs them. -- The original facade value is not mutated. ### How to Use @@ -73,6 +73,8 @@ In this example, one base facade becomes several target-specific async facades. And each derived facade still wraps the same kind of queue-backed async logger state, differing only in the default target it carries. +The derived facade keeps the same timestamp and level-gating behavior as the source facade. + ### Error Case e.g.: