Skip to content

Field-with-value ​

Return a copy of a Field with a different value. This helper is the narrowest way to rewrite one field value while preserving the existing key.

Interface ​

moonbit
pub fn Field::with_value(self : Field, value : String) -> Field {}

input ​

  • self : Field - Base field whose value should be replaced.
  • value : String - New value text for the returned field.

output ​

  • Field - New field value carrying the updated value.

Explanation ​

Detailed rules explaining key parameters and behaviors

  • This helper returns a new field value instead of mutating the original one.
  • Only the value part is replaced.
  • The original key is preserved exactly.
  • This is useful for redaction, normalization, or tests that need one adjusted field value without rebuilding the key manually.

How to Use ​

Here are some specific examples provided.

When Need To Redact One Existing Field Value ​

When the field key should stay the same but the value should be hidden:

moonbit
let user = field("user", "alice")
let redacted = user.with_value("***")

In this example, the returned field keeps the same key while changing only the visible value.

When Need To Rewrite A Field In Test Data ​

When one field should be adapted without reconstructing the key by hand:

moonbit
let region = field("region", "cn").with_value("eu")

In this example, the helper keeps the transformation local to one field value.

Error Case ​

e.g.:

  • If value is empty, the returned field is still valid and simply carries an empty string value.

  • If the key should also change, constructing a new field with field(...) is clearer than chaining this helper.

Notes ​

  1. Use this helper when the key should stay stable and only the value should change.

  2. It is especially useful for redaction-style value updates in tests or adapters.

Published from the repository docs folder with VitePress.