Return `String` directly instead of writing to buffer in `Localize::localize`

finchie
Jun 4, 2025, 12:07 PM
U2PHMYPDFQQYTPDVVJLWDJM5G45ILXLWDDDTZVV2NBOSCED323MQC

Dependencies

  • [2] LU6IFZFG Remove `std::io::Write` trait bound from `Localize`
  • [3] BAH2JCJP Add progress bar to `fluent_embed_interaction`
  • [4] JUV7C6ET Create initial prototype of `fluent_embed_interaction`
  • [5] 7M4UI3TW Update dependencies to latest versions
  • [6] 3NMKD6I5 Refactor `Localize` trait to use `std::io::Write`
  • [7] GJMBIJOE Migrate to latest env_preferences version
  • [*] HHJDRLLN Create `fluent_embed_runtime` crate

Change contents

  • replacement in fluent_embed_interaction/src/prompt/select.rs at line 20
    [4.685][4.685:1013]()
    .map(|item| {
    let mut buffer = Vec::new();
    item.localize(&mut buffer).map(|_| buffer)
    })
    .collect::<Result<Vec<Vec<u8>>, LocalizationError>>()?
    .into_iter()
    .map(|item| String::from_utf8(item).map_err(LocalizationError::InvalidOutput))
    [4.685]
    [4.1013]
    .map(Localize::localize)
  • replacement in fluent_embed_interaction/src/prompt/password.rs at line 27
    [4.2753][4.2753:2895]()
    let mut buffer = Vec::new();
    confirmation.localize(&mut buffer)?;
    let confirmation_text = String::from_utf8(buffer)?;
    [4.2753]
    [4.2895]
    let confirmation_text = confirmation.localize()?;
    let mismatch_error_text = mismatch_error.localize()?;
  • edit in fluent_embed_interaction/src/prompt/password.rs at line 30
    [4.2896][4.2896:3043]()
    let mut buffer = Vec::new();
    mismatch_error.localize(&mut buffer)?;
    let mismatch_error_text = String::from_utf8(buffer)?;
  • replacement in fluent_embed_interaction/src/prompt/macros.rs at line 29
    [4.5087][4.5087:5244]()
    let mut buffer = Vec::new();
    prompt.localize(&mut buffer)?;
    let localized_text = String::from_utf8(buffer)?;
    [4.5087]
    [4.5244]
    let localized_text = prompt.localize()?;
  • replacement in fluent_embed_interaction/src/prompt/macros.rs at line 50
    [4.5892][4.5892:6188]()
    let mut buffer = Vec::new();
    message
    .localize(&mut buffer)
    .map_err(|error| error.to_string())?;
    Err(String::from_utf8_lossy(&buffer).to_string())
    [4.5892]
    [4.6188]
    Err(message.localize().unwrap())
  • replacement in fluent_embed_interaction/src/prompt/input.rs at line 18
    [4.7037][4.7037:7171]()
    let mut buffer = Vec::new();
    default.localize(&mut buffer)?;
    let localized_text = String::from_utf8(buffer)?;
    [4.7037]
    [4.7171]
    let localized_text = default.localize()?;
  • replacement in fluent_embed_interaction/src/progress.rs at line 26
    [3.1327][3.1327:1461]()
    let mut buffer = Vec::new();
    message.localize(&mut buffer)?;
    let localized_text = String::from_utf8(buffer)?;
    [3.1327]
    [3.1461]
    let localized_text = message.localize()?;
  • replacement in fluent_embed/src/lib.rs at line 52
    [4.3447][2.778:871]()
    fn localize<W: std::io::Write>(&self, writer: &mut W) -> Result<(), LocalizationError> {
    [4.3447]
    [4.321]
    fn localize(&self) -> Result<String, LocalizationError> {
  • edit in fluent_embed/src/lib.rs at line 73
    [4.5246]
    [4.3772]
    let mut buffer = Vec::new();
  • replacement in fluent_embed/src/lib.rs at line 76
    [4.3805][4.3805:3825]()
    writer,
    [4.3805]
    [4.3825]
    &mut buffer,
  • replacement in fluent_embed/src/lib.rs at line 78
    [4.3914][4.3914:3924]()
    )
    [4.3914]
    [4.5304]
    )?;
    let localized_text = String::from_utf8(buffer)?;
    Ok(localized_text)