INNER CODE UNIT · Rust
initial_range
gfx-rs/gfx · src/auxil/range-alloc/src/lib.rs:41
pub fn initial_range(&self) -> &Range<T> {
&self.initial_range
}
pub fn allocate_range(&mut self, length: T) -> Result<Range<T>, RangeAllocationError<T>> {
assert_ne!(length + length, length);
let mut best_fit: Option<(usize, Range<T>)> = None;
let mut fragmented_free_length = length - length;
for (index, range) in self.free_ranges.iter().cloned().enumerate() {
let range_length = range.end - range.start;
fragmented_free_length += range_length;
if range_length < length {
continue;
} else if range_length == length {
// Found a perfect fit, so stop looking.
best_fit = Some((index, range));
break;
}