INNER CODE UNIT · Rust
new
gfx-rs/gfx · src/auxil/range-alloc/src/lib.rs:34
pub fn new(range: Range<T>) -> Self {
RangeAllocator {
initial_range: range.clone(),
free_ranges: vec![range],
}
}
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;