Merge pull request #3909 from element-hq/quenting/buf-read-translations

Buffer reading of translation files
This commit is contained in:
Quentin Gliech
2025-01-29 16:17:42 +01:00
committed by GitHub
2 changed files with 9 additions and 6 deletions

View File

@@ -8,7 +8,7 @@
// which is annoying with this clippy lint
#![allow(clippy::default_constructed_unit_structs)]
use std::fs::File;
use std::{fs::File, io::BufReader};
use ::minijinja::{machinery::WhitespaceConfig, syntax::SyntaxConfig};
use camino::Utf8PathBuf;
@@ -50,8 +50,9 @@ fn main() {
// Open the existing translation file if one was provided
let mut tree = if let Some(path) = &options.existing {
let mut file = File::open(path).expect("Failed to open existing translation file");
serde_json::from_reader(&mut file).expect("Failed to parse existing translation file")
let file = File::open(path).expect("Failed to open existing translation file");
let mut reader = BufReader::new(file);
serde_json::from_reader(&mut reader).expect("Failed to parse existing translation file")
} else {
TranslationTree::default()
};

View File

@@ -4,7 +4,7 @@
// SPDX-License-Identifier: AGPL-3.0-only
// Please see LICENSE in the repository root for full details.
use std::{collections::HashMap, fs::File, str::FromStr};
use std::{collections::HashMap, fs::File, io::BufReader, str::FromStr};
use camino::{Utf8Path, Utf8PathBuf};
use icu_list::{ListError, ListFormatter, ListLength};
@@ -135,12 +135,14 @@ impl Translator {
Err(source) => return Err(LoadError::InvalidLocale { path, source }),
};
let mut file = match File::open(&path) {
let file = match File::open(&path) {
Ok(file) => file,
Err(source) => return Err(LoadError::ReadFile { path, source }),
};
let content = match serde_json::from_reader(&mut file) {
let mut reader = BufReader::new(file);
let content = match serde_json::from_reader(&mut reader) {
Ok(content) => content,
Err(source) => return Err(LoadError::Deserialize { path, source }),
};