/* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ use anyhow::Result; use std::{collections::HashSet, io::Read}; use crate::FlagId; /// Read a list of flag names. The input is expected to be plain text, with each line containing /// the name of a single flag. pub(crate) fn read_finalized_flags(mut reader: R) -> Result> { let mut contents = String::new(); reader.read_to_string(&mut contents)?; let iter = contents.lines().map(|s| s.to_owned()); Ok(HashSet::from_iter(iter)) } #[cfg(test)] mod tests { use super::*; #[test] fn test() { let input = include_bytes!("../tests/finalized-flags.txt"); let flags = read_finalized_flags(&input[..]).unwrap(); assert_eq!( flags, HashSet::from_iter(vec![ "record_finalized_flags.test.bar".to_string(), "record_finalized_flags.test.baz".to_string(), ]) ); } }