let mut map = String::new();
for el in self.ids.iter() {
if !map.is_empty() { map.push(','); }
- map.push_str(&*el.to_string());
+ map.push_str(&el.to_string());
}
write!(f, "{}", map)
}
/// Reports whether the format is not packed.
pub fn is_unpacked(&self) -> bool {
if self.palette { return false; }
- for chr in self.comp_info.iter() {
- if let Some(ref chromaton) = chr {
- if chromaton.is_packed() { return false; }
- }
+ for chromaton in self.comp_info.iter().flatten() {
+ if chromaton.is_packed() { return false; }
}
true
}
/// Returns the maximum component bit depth.
pub fn get_max_depth(&self) -> u8 {
let mut mdepth = 0;
- for chr in self.comp_info.iter() {
- if let Some(ref chromaton) = chr {
- mdepth = mdepth.max(chromaton.depth);
- }
+ for chromaton in self.comp_info.iter().flatten() {
+ mdepth = mdepth.max(chromaton.depth);
}
mdepth
}
/// Returns the total amount of bits needed for components.
pub fn get_total_depth(&self) -> u8 {
let mut depth = 0;
- for chr in self.comp_info.iter() {
- if let Some(ref chromaton) = chr {
- depth += chromaton.depth;
- }
+ for chromaton in self.comp_info.iter().flatten() {
+ depth += chromaton.depth;
}
depth
}
/// Returns the maximum component subsampling.
pub fn get_max_subsampling(&self) -> u8 {
let mut ssamp = 0;
- for chr in self.comp_info.iter() {
- if let Some(ref chromaton) = chr {
- let (ss_v, ss_h) = chromaton.get_subsampling();
- ssamp = ssamp.max(ss_v).max(ss_h);
- }
+ for chromaton in self.comp_info.iter().flatten() {
+ let (ss_v, ss_h) = chromaton.get_subsampling();
+ ssamp = ssamp.max(ss_v).max(ss_h);
}
ssamp
}
let mut start_off = 0;
let mut start_shift = 0;
let mut use_shift = true;
- for comp in self.comp_info.iter() {
- if let Some(comp) = comp {
- start_off = start_off.min(comp.comp_offs);
- start_shift = start_shift.min(comp.shift);
- if comp.comp_offs != 0 { use_shift = false; }
- }
+ for comp in self.comp_info.iter().flatten() {
+ start_off = start_off.min(comp.comp_offs);
+ start_shift = start_shift.min(comp.shift);
+ if comp.comp_offs != 0 { use_shift = false; }
}
for component in 0..(self.components as usize) {
for (comp, cname) in self.comp_info.iter().zip(b"rgba".iter()) {
let end = if self.be { "BE" } else { "LE" };
let palstr = if self.palette { "palette " } else { "" };
let astr = if self.alpha { "alpha " } else { "" };
- let mut str = format!("Formaton for {} ({}{}elem {} size {}): ", self.model, palstr, astr,end, self.elem_size);
+ let mut string = format!("Formaton for {} ({}{}elem {} size {}): ", self.model, palstr, astr,end, self.elem_size);
for i in 0..self.comp_info.len() {
if let Some(chr) = self.comp_info[i] {
- str = format!("{} {}", str, chr);
+ string = format!("{} {}", string, chr);
}
}
- write!(f, "[{}]", str)
+ write!(f, "[{}]", string)
}
}
let mut parse_end = components as usize;
for ch in s.chars().skip(components as usize) {
parse_end += 1;
- if ('0'..='9').contains(&ch) {
+ if ch.is_ascii_digit() {
format = format * 10 + u32::from((ch as u8) - b'0');
if format > 444 { return Err(FormatParseError {}); }
} else {
let depth = if s.len() == parse_end { 8 } else {
let mut val = 0;
for ch in s.chars().skip(parse_end) {
- if ('0'..='9').contains(&ch) {
+ if ch.is_ascii_digit() {
val = val * 10 + ((ch as u8) - b'0');
if val > 16 { return Err(FormatParseError {}); }
} else {