Loading tools/aconfig/aconfig/src/storage/flag_table.rs +3 −3 Original line number Diff line number Diff line Loading @@ -95,10 +95,10 @@ pub fn create_flag_table(container: &str, packages: &[FlagPackage]) -> Result<Fl .concat(); // initialize all header fields header.bucket_offset = header.as_bytes().len() as u32; header.bucket_offset = header.into_bytes().len() as u32; header.node_offset = header.bucket_offset + num_buckets * 4; header.file_size = header.node_offset + node_wrappers.iter().map(|x| x.node.as_bytes().len()).sum::<usize>() as u32; + node_wrappers.iter().map(|x| x.node.into_bytes().len()).sum::<usize>() as u32; // sort nodes by bucket index for efficiency node_wrappers.sort_by(|a, b| a.bucket_index.cmp(&b.bucket_index)); Loading @@ -116,7 +116,7 @@ pub fn create_flag_table(container: &str, packages: &[FlagPackage]) -> Result<Fl if buckets[node_bucket_idx as usize].is_none() { buckets[node_bucket_idx as usize] = Some(offset); } offset += node_wrappers[i].node.as_bytes().len() as u32; offset += node_wrappers[i].node.into_bytes().len() as u32; if let Some(index) = next_node_bucket_idx { if index == node_bucket_idx { Loading tools/aconfig/aconfig/src/storage/flag_value.rs +1 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ pub fn create_flag_value(container: &str, packages: &[FlagPackage]) -> Result<Fl } // initialize all header fields list.header.boolean_value_offset = list.header.as_bytes().len() as u32; list.header.boolean_value_offset = list.header.into_bytes().len() as u32; list.header.file_size = list.header.boolean_value_offset + num_flags; Ok(list) Loading tools/aconfig/aconfig/src/storage/mod.rs +3 −3 Original line number Diff line number Diff line Loading @@ -97,15 +97,15 @@ where match file { StorageFileType::PackageMap => { let package_table = create_package_table(container, &packages)?; Ok(package_table.as_bytes()) Ok(package_table.into_bytes()) } StorageFileType::FlagMap => { let flag_table = create_flag_table(container, &packages)?; Ok(flag_table.as_bytes()) Ok(flag_table.into_bytes()) } StorageFileType::FlagVal => { let flag_value = create_flag_value(container, &packages)?; Ok(flag_value.as_bytes()) Ok(flag_value.into_bytes()) } _ => Err(anyhow!("aconfig does not support the creation of this storage file type")), } Loading tools/aconfig/aconfig/src/storage/package_table.rs +3 −3 Original line number Diff line number Diff line Loading @@ -66,10 +66,10 @@ pub fn create_package_table(container: &str, packages: &[FlagPackage]) -> Result packages.iter().map(|pkg| PackageTableNodeWrapper::new(pkg, num_buckets)).collect(); // initialize all header fields header.bucket_offset = header.as_bytes().len() as u32; header.bucket_offset = header.into_bytes().len() as u32; header.node_offset = header.bucket_offset + num_buckets * 4; header.file_size = header.node_offset + node_wrappers.iter().map(|x| x.node.as_bytes().len()).sum::<usize>() as u32; + node_wrappers.iter().map(|x| x.node.into_bytes().len()).sum::<usize>() as u32; // sort node_wrappers by bucket index for efficiency node_wrappers.sort_by(|a, b| a.bucket_index.cmp(&b.bucket_index)); Loading @@ -87,7 +87,7 @@ pub fn create_package_table(container: &str, packages: &[FlagPackage]) -> Result if buckets[node_bucket_idx as usize].is_none() { buckets[node_bucket_idx as usize] = Some(offset); } offset += node_wrappers[i].node.as_bytes().len() as u32; offset += node_wrappers[i].node.into_bytes().len() as u32; if let Some(index) = next_node_bucket_idx { if index == node_bucket_idx { Loading tools/aconfig/aconfig_storage_file/src/flag_info.rs +12 −12 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ impl fmt::Debug for FlagInfoHeader { impl FlagInfoHeader { /// Serialize to bytes pub fn as_bytes(&self) -> Vec<u8> { pub fn into_bytes(&self) -> Vec<u8> { let mut result = Vec::new(); result.extend_from_slice(&self.version.to_le_bytes()); let container_bytes = self.container.as_bytes(); Loading Loading @@ -118,7 +118,7 @@ impl fmt::Debug for FlagInfoNode { impl FlagInfoNode { /// Serialize to bytes pub fn as_bytes(&self) -> Vec<u8> { pub fn into_bytes(&self) -> Vec<u8> { let mut result = Vec::new(); result.extend_from_slice(&self.attributes.to_le_bytes()); result Loading Loading @@ -154,10 +154,10 @@ impl fmt::Debug for FlagInfoList { impl FlagInfoList { /// Serialize to bytes pub fn as_bytes(&self) -> Vec<u8> { pub fn into_bytes(&self) -> Vec<u8> { [ self.header.as_bytes(), self.nodes.iter().map(|v| v.as_bytes()).collect::<Vec<_>>().concat(), self.header.into_bytes(), self.nodes.iter().map(|v| v.into_bytes()).collect::<Vec<_>>().concat(), ] .concat() } Loading @@ -166,11 +166,11 @@ impl FlagInfoList { pub fn from_bytes(bytes: &[u8]) -> Result<Self, AconfigStorageError> { let header = FlagInfoHeader::from_bytes(bytes)?; let num_flags = header.num_flags; let mut head = header.as_bytes().len(); let mut head = header.into_bytes().len(); let nodes = (0..num_flags) .map(|_| { let node = FlagInfoNode::from_bytes(&bytes[head..])?; head += node.as_bytes().len(); head += node.into_bytes().len(); Ok(node) }) .collect::<Result<Vec<_>, AconfigStorageError>>() Loading @@ -196,17 +196,17 @@ mod tests { let flag_info_list = create_test_flag_info_list(); let header: &FlagInfoHeader = &flag_info_list.header; let reinterpreted_header = FlagInfoHeader::from_bytes(&header.as_bytes()); let reinterpreted_header = FlagInfoHeader::from_bytes(&header.into_bytes()); assert!(reinterpreted_header.is_ok()); assert_eq!(header, &reinterpreted_header.unwrap()); let nodes: &Vec<FlagInfoNode> = &flag_info_list.nodes; for node in nodes.iter() { let reinterpreted_node = FlagInfoNode::from_bytes(&node.as_bytes()).unwrap(); let reinterpreted_node = FlagInfoNode::from_bytes(&node.into_bytes()).unwrap(); assert_eq!(node, &reinterpreted_node); } let flag_info_bytes = flag_info_list.as_bytes(); let flag_info_bytes = flag_info_list.into_bytes(); let reinterpreted_info_list = FlagInfoList::from_bytes(&flag_info_bytes); assert!(reinterpreted_info_list.is_ok()); assert_eq!(&flag_info_list, &reinterpreted_info_list.unwrap()); Loading @@ -218,7 +218,7 @@ mod tests { // bytes fn test_version_number() { let flag_info_list = create_test_flag_info_list(); let bytes = &flag_info_list.as_bytes(); let bytes = &flag_info_list.into_bytes(); let mut head = 0; let version = read_u32_from_bytes(bytes, &mut head).unwrap(); assert_eq!(version, 1234) Loading @@ -229,7 +229,7 @@ mod tests { fn test_file_type_check() { let mut flag_info_list = create_test_flag_info_list(); flag_info_list.header.file_type = 123u8; let error = FlagInfoList::from_bytes(&flag_info_list.as_bytes()).unwrap_err(); let error = FlagInfoList::from_bytes(&flag_info_list.into_bytes()).unwrap_err(); assert_eq!( format!("{:?}", error), format!("BytesParseFail(binary file is not a flag info file)") Loading Loading
tools/aconfig/aconfig/src/storage/flag_table.rs +3 −3 Original line number Diff line number Diff line Loading @@ -95,10 +95,10 @@ pub fn create_flag_table(container: &str, packages: &[FlagPackage]) -> Result<Fl .concat(); // initialize all header fields header.bucket_offset = header.as_bytes().len() as u32; header.bucket_offset = header.into_bytes().len() as u32; header.node_offset = header.bucket_offset + num_buckets * 4; header.file_size = header.node_offset + node_wrappers.iter().map(|x| x.node.as_bytes().len()).sum::<usize>() as u32; + node_wrappers.iter().map(|x| x.node.into_bytes().len()).sum::<usize>() as u32; // sort nodes by bucket index for efficiency node_wrappers.sort_by(|a, b| a.bucket_index.cmp(&b.bucket_index)); Loading @@ -116,7 +116,7 @@ pub fn create_flag_table(container: &str, packages: &[FlagPackage]) -> Result<Fl if buckets[node_bucket_idx as usize].is_none() { buckets[node_bucket_idx as usize] = Some(offset); } offset += node_wrappers[i].node.as_bytes().len() as u32; offset += node_wrappers[i].node.into_bytes().len() as u32; if let Some(index) = next_node_bucket_idx { if index == node_bucket_idx { Loading
tools/aconfig/aconfig/src/storage/flag_value.rs +1 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ pub fn create_flag_value(container: &str, packages: &[FlagPackage]) -> Result<Fl } // initialize all header fields list.header.boolean_value_offset = list.header.as_bytes().len() as u32; list.header.boolean_value_offset = list.header.into_bytes().len() as u32; list.header.file_size = list.header.boolean_value_offset + num_flags; Ok(list) Loading
tools/aconfig/aconfig/src/storage/mod.rs +3 −3 Original line number Diff line number Diff line Loading @@ -97,15 +97,15 @@ where match file { StorageFileType::PackageMap => { let package_table = create_package_table(container, &packages)?; Ok(package_table.as_bytes()) Ok(package_table.into_bytes()) } StorageFileType::FlagMap => { let flag_table = create_flag_table(container, &packages)?; Ok(flag_table.as_bytes()) Ok(flag_table.into_bytes()) } StorageFileType::FlagVal => { let flag_value = create_flag_value(container, &packages)?; Ok(flag_value.as_bytes()) Ok(flag_value.into_bytes()) } _ => Err(anyhow!("aconfig does not support the creation of this storage file type")), } Loading
tools/aconfig/aconfig/src/storage/package_table.rs +3 −3 Original line number Diff line number Diff line Loading @@ -66,10 +66,10 @@ pub fn create_package_table(container: &str, packages: &[FlagPackage]) -> Result packages.iter().map(|pkg| PackageTableNodeWrapper::new(pkg, num_buckets)).collect(); // initialize all header fields header.bucket_offset = header.as_bytes().len() as u32; header.bucket_offset = header.into_bytes().len() as u32; header.node_offset = header.bucket_offset + num_buckets * 4; header.file_size = header.node_offset + node_wrappers.iter().map(|x| x.node.as_bytes().len()).sum::<usize>() as u32; + node_wrappers.iter().map(|x| x.node.into_bytes().len()).sum::<usize>() as u32; // sort node_wrappers by bucket index for efficiency node_wrappers.sort_by(|a, b| a.bucket_index.cmp(&b.bucket_index)); Loading @@ -87,7 +87,7 @@ pub fn create_package_table(container: &str, packages: &[FlagPackage]) -> Result if buckets[node_bucket_idx as usize].is_none() { buckets[node_bucket_idx as usize] = Some(offset); } offset += node_wrappers[i].node.as_bytes().len() as u32; offset += node_wrappers[i].node.into_bytes().len() as u32; if let Some(index) = next_node_bucket_idx { if index == node_bucket_idx { Loading
tools/aconfig/aconfig_storage_file/src/flag_info.rs +12 −12 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ impl fmt::Debug for FlagInfoHeader { impl FlagInfoHeader { /// Serialize to bytes pub fn as_bytes(&self) -> Vec<u8> { pub fn into_bytes(&self) -> Vec<u8> { let mut result = Vec::new(); result.extend_from_slice(&self.version.to_le_bytes()); let container_bytes = self.container.as_bytes(); Loading Loading @@ -118,7 +118,7 @@ impl fmt::Debug for FlagInfoNode { impl FlagInfoNode { /// Serialize to bytes pub fn as_bytes(&self) -> Vec<u8> { pub fn into_bytes(&self) -> Vec<u8> { let mut result = Vec::new(); result.extend_from_slice(&self.attributes.to_le_bytes()); result Loading Loading @@ -154,10 +154,10 @@ impl fmt::Debug for FlagInfoList { impl FlagInfoList { /// Serialize to bytes pub fn as_bytes(&self) -> Vec<u8> { pub fn into_bytes(&self) -> Vec<u8> { [ self.header.as_bytes(), self.nodes.iter().map(|v| v.as_bytes()).collect::<Vec<_>>().concat(), self.header.into_bytes(), self.nodes.iter().map(|v| v.into_bytes()).collect::<Vec<_>>().concat(), ] .concat() } Loading @@ -166,11 +166,11 @@ impl FlagInfoList { pub fn from_bytes(bytes: &[u8]) -> Result<Self, AconfigStorageError> { let header = FlagInfoHeader::from_bytes(bytes)?; let num_flags = header.num_flags; let mut head = header.as_bytes().len(); let mut head = header.into_bytes().len(); let nodes = (0..num_flags) .map(|_| { let node = FlagInfoNode::from_bytes(&bytes[head..])?; head += node.as_bytes().len(); head += node.into_bytes().len(); Ok(node) }) .collect::<Result<Vec<_>, AconfigStorageError>>() Loading @@ -196,17 +196,17 @@ mod tests { let flag_info_list = create_test_flag_info_list(); let header: &FlagInfoHeader = &flag_info_list.header; let reinterpreted_header = FlagInfoHeader::from_bytes(&header.as_bytes()); let reinterpreted_header = FlagInfoHeader::from_bytes(&header.into_bytes()); assert!(reinterpreted_header.is_ok()); assert_eq!(header, &reinterpreted_header.unwrap()); let nodes: &Vec<FlagInfoNode> = &flag_info_list.nodes; for node in nodes.iter() { let reinterpreted_node = FlagInfoNode::from_bytes(&node.as_bytes()).unwrap(); let reinterpreted_node = FlagInfoNode::from_bytes(&node.into_bytes()).unwrap(); assert_eq!(node, &reinterpreted_node); } let flag_info_bytes = flag_info_list.as_bytes(); let flag_info_bytes = flag_info_list.into_bytes(); let reinterpreted_info_list = FlagInfoList::from_bytes(&flag_info_bytes); assert!(reinterpreted_info_list.is_ok()); assert_eq!(&flag_info_list, &reinterpreted_info_list.unwrap()); Loading @@ -218,7 +218,7 @@ mod tests { // bytes fn test_version_number() { let flag_info_list = create_test_flag_info_list(); let bytes = &flag_info_list.as_bytes(); let bytes = &flag_info_list.into_bytes(); let mut head = 0; let version = read_u32_from_bytes(bytes, &mut head).unwrap(); assert_eq!(version, 1234) Loading @@ -229,7 +229,7 @@ mod tests { fn test_file_type_check() { let mut flag_info_list = create_test_flag_info_list(); flag_info_list.header.file_type = 123u8; let error = FlagInfoList::from_bytes(&flag_info_list.as_bytes()).unwrap_err(); let error = FlagInfoList::from_bytes(&flag_info_list.into_bytes()).unwrap_err(); assert_eq!( format!("{:?}", error), format!("BytesParseFail(binary file is not a flag info file)") Loading