Coverage Report

Created: 2025-08-29 07:17

/rust/registry/src/index.crates.io-6f17d22bba15001f/alloc-stdlib-0.2.2/src/heap_alloc.rs
Line
Count
Source
1
use std;
2
3
4
use super::{SliceWrapper, SliceWrapperMut, Allocator};
5
6
use std::ops;
7
use std::ops::Range;
8
use std::boxed::Box;
9
use std::vec::Vec;
10
pub struct WrapBox<T>(std::boxed::Box<[T]>);
11
12
impl<T> From<Vec<T>> for WrapBox<T> {
13
1.85M
    fn from(data: Vec<T>) -> Self {
14
1.85M
        WrapBox(data.into_boxed_slice())
15
1.85M
    }
Unexecuted instantiation: <alloc_stdlib::heap_alloc::WrapBox<brotli::enc::interface::Command<brotli::enc::interface::SliceOffset>> as core::convert::From<alloc::vec::Vec<brotli::enc::interface::Command<brotli::enc::interface::SliceOffset>>>>::from
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::entropy_encode::HuffmanTree> as core::convert::From<alloc::vec::Vec<brotli::enc::entropy_encode::HuffmanTree>>>::from
Line
Count
Source
13
41.5k
    fn from(data: Vec<T>) -> Self {
14
41.5k
        WrapBox(data.into_boxed_slice())
15
41.5k
    }
Unexecuted instantiation: <alloc_stdlib::heap_alloc::WrapBox<brotli::enc::compat::Compat16x16> as core::convert::From<alloc::vec::Vec<brotli::enc::compat::Compat16x16>>>::from
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::compat::CompatF8> as core::convert::From<alloc::vec::Vec<brotli::enc::compat::CompatF8>>>::from
Line
Count
Source
13
6.45k
    fn from(data: Vec<T>) -> Self {
14
6.45k
        WrapBox(data.into_boxed_slice())
15
6.45k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::cluster::HistogramPair> as core::convert::From<alloc::vec::Vec<brotli::enc::cluster::HistogramPair>>>::from
Line
Count
Source
13
20.6k
    fn from(data: Vec<T>) -> Self {
14
20.6k
        WrapBox(data.into_boxed_slice())
15
20.6k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::command::Command> as core::convert::From<alloc::vec::Vec<brotli::enc::command::Command>>>::from
Line
Count
Source
13
11.9k
    fn from(data: Vec<T>) -> Self {
14
11.9k
        WrapBox(data.into_boxed_slice())
15
11.9k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::ContextType> as core::convert::From<alloc::vec::Vec<brotli::enc::histogram::ContextType>>>::from
Line
Count
Source
13
6.71k
    fn from(data: Vec<T>) -> Self {
14
6.71k
        WrapBox(data.into_boxed_slice())
15
6.71k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramCommand> as core::convert::From<alloc::vec::Vec<brotli::enc::histogram::HistogramCommand>>>::from
Line
Count
Source
13
16.6k
    fn from(data: Vec<T>) -> Self {
14
16.6k
        WrapBox(data.into_boxed_slice())
15
16.6k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramLiteral> as core::convert::From<alloc::vec::Vec<brotli::enc::histogram::HistogramLiteral>>>::from
Line
Count
Source
13
38.1k
    fn from(data: Vec<T>) -> Self {
14
38.1k
        WrapBox(data.into_boxed_slice())
15
38.1k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramDistance> as core::convert::From<alloc::vec::Vec<brotli::enc::histogram::HistogramDistance>>>::from
Line
Count
Source
13
28.9k
    fn from(data: Vec<T>) -> Self {
14
28.9k
        WrapBox(data.into_boxed_slice())
15
28.9k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::backward_references::hash_to_binary_tree::ZopfliNode> as core::convert::From<alloc::vec::Vec<brotli::enc::backward_references::hash_to_binary_tree::ZopfliNode>>>::from
Line
Count
Source
13
7.47k
    fn from(data: Vec<T>) -> Self {
14
7.47k
        WrapBox(data.into_boxed_slice())
15
7.47k
    }
<alloc_stdlib::heap_alloc::WrapBox<f32> as core::convert::From<alloc::vec::Vec<f32>>>::from
Line
Count
Source
13
21.3k
    fn from(data: Vec<T>) -> Self {
14
21.3k
        WrapBox(data.into_boxed_slice())
15
21.3k
    }
<alloc_stdlib::heap_alloc::WrapBox<i32> as core::convert::From<alloc::vec::Vec<i32>>>::from
Line
Count
Source
13
638
    fn from(data: Vec<T>) -> Self {
14
638
        WrapBox(data.into_boxed_slice())
15
638
    }
<alloc_stdlib::heap_alloc::WrapBox<u16> as core::convert::From<alloc::vec::Vec<u16>>>::from
Line
Count
Source
13
57.8k
    fn from(data: Vec<T>) -> Self {
14
57.8k
        WrapBox(data.into_boxed_slice())
15
57.8k
    }
<alloc_stdlib::heap_alloc::WrapBox<u64> as core::convert::From<alloc::vec::Vec<u64>>>::from
Line
Count
Source
13
8.32k
    fn from(data: Vec<T>) -> Self {
14
8.32k
        WrapBox(data.into_boxed_slice())
15
8.32k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli_decompressor::huffman::HuffmanCode> as core::convert::From<alloc::vec::Vec<brotli_decompressor::huffman::HuffmanCode>>>::from
Line
Count
Source
13
202k
    fn from(data: Vec<T>) -> Self {
14
202k
        WrapBox(data.into_boxed_slice())
15
202k
    }
<alloc_stdlib::heap_alloc::WrapBox<u8> as core::convert::From<alloc::vec::Vec<u8>>>::from
Line
Count
Source
13
698k
    fn from(data: Vec<T>) -> Self {
14
698k
        WrapBox(data.into_boxed_slice())
15
698k
    }
<alloc_stdlib::heap_alloc::WrapBox<u32> as core::convert::From<alloc::vec::Vec<u32>>>::from
Line
Count
Source
13
687k
    fn from(data: Vec<T>) -> Self {
14
687k
        WrapBox(data.into_boxed_slice())
15
687k
    }
16
}
17
18
impl<T> Into<Box<[T]>> for WrapBox<T> {
19
    fn into(self) -> Box<[T]> {
20
        self.0
21
    }
22
}
23
24
impl<T> Default for WrapBox<T> {
25
48.8M
    fn default() -> Self {
26
48.8M
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
48.8M
       let b = v.into_boxed_slice();
28
48.8M
       return WrapBox::<T>(b);
29
48.8M
    }
Unexecuted instantiation: <alloc_stdlib::heap_alloc::WrapBox<brotli::enc::interface::Command<brotli::enc::interface::SliceOffset>> as core::default::Default>::default
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::entropy_encode::HuffmanTree> as core::default::Default>::default
Line
Count
Source
25
41.5k
    fn default() -> Self {
26
41.5k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
41.5k
       let b = v.into_boxed_slice();
28
41.5k
       return WrapBox::<T>(b);
29
41.5k
    }
Unexecuted instantiation: <alloc_stdlib::heap_alloc::WrapBox<brotli::enc::compat::Compat16x16> as core::default::Default>::default
Unexecuted instantiation: <alloc_stdlib::heap_alloc::WrapBox<brotli::enc::compat::CompatF8> as core::default::Default>::default
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::cluster::HistogramPair> as core::default::Default>::default
Line
Count
Source
25
6.45k
    fn default() -> Self {
26
6.45k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
6.45k
       let b = v.into_boxed_slice();
28
6.45k
       return WrapBox::<T>(b);
29
6.45k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::command::Command> as core::default::Default>::default
Line
Count
Source
25
26.9k
    fn default() -> Self {
26
26.9k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
26.9k
       let b = v.into_boxed_slice();
28
26.9k
       return WrapBox::<T>(b);
29
26.9k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::ContextType> as core::default::Default>::default
Line
Count
Source
25
6.71k
    fn default() -> Self {
26
6.71k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
6.71k
       let b = v.into_boxed_slice();
28
6.71k
       return WrapBox::<T>(b);
29
6.71k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramCommand> as core::default::Default>::default
Line
Count
Source
25
26.3k
    fn default() -> Self {
26
26.3k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
26.3k
       let b = v.into_boxed_slice();
28
26.3k
       return WrapBox::<T>(b);
29
26.3k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramLiteral> as core::default::Default>::default
Line
Count
Source
25
29.4k
    fn default() -> Self {
26
29.4k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
29.4k
       let b = v.into_boxed_slice();
28
29.4k
       return WrapBox::<T>(b);
29
29.4k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramDistance> as core::default::Default>::default
Line
Count
Source
25
25.5k
    fn default() -> Self {
26
25.5k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
25.5k
       let b = v.into_boxed_slice();
28
25.5k
       return WrapBox::<T>(b);
29
25.5k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::backward_references::hash_to_binary_tree::ZopfliNode> as core::default::Default>::default
Line
Count
Source
25
418
    fn default() -> Self {
26
418
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
418
       let b = v.into_boxed_slice();
28
418
       return WrapBox::<T>(b);
29
418
    }
<alloc_stdlib::heap_alloc::WrapBox<f32> as core::default::Default>::default
Line
Count
Source
25
14.9k
    fn default() -> Self {
26
14.9k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
14.9k
       let b = v.into_boxed_slice();
28
14.9k
       return WrapBox::<T>(b);
29
14.9k
    }
<alloc_stdlib::heap_alloc::WrapBox<i32> as core::default::Default>::default
Line
Count
Source
25
27.5k
    fn default() -> Self {
26
27.5k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
27.5k
       let b = v.into_boxed_slice();
28
27.5k
       return WrapBox::<T>(b);
29
27.5k
    }
<alloc_stdlib::heap_alloc::WrapBox<u16> as core::default::Default>::default
Line
Count
Source
25
72.2k
    fn default() -> Self {
26
72.2k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
72.2k
       let b = v.into_boxed_slice();
28
72.2k
       return WrapBox::<T>(b);
29
72.2k
    }
<alloc_stdlib::heap_alloc::WrapBox<u64> as core::default::Default>::default
Line
Count
Source
25
1.52k
    fn default() -> Self {
26
1.52k
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
1.52k
       let b = v.into_boxed_slice();
28
1.52k
       return WrapBox::<T>(b);
29
1.52k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli_decompressor::huffman::HuffmanCode> as core::default::Default>::default
Line
Count
Source
25
22.5M
    fn default() -> Self {
26
22.5M
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
22.5M
       let b = v.into_boxed_slice();
28
22.5M
       return WrapBox::<T>(b);
29
22.5M
    }
<alloc_stdlib::heap_alloc::WrapBox<u8> as core::default::Default>::default
Line
Count
Source
25
2.21M
    fn default() -> Self {
26
2.21M
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
2.21M
       let b = v.into_boxed_slice();
28
2.21M
       return WrapBox::<T>(b);
29
2.21M
    }
<alloc_stdlib::heap_alloc::WrapBox<u32> as core::default::Default>::default
Line
Count
Source
25
23.7M
    fn default() -> Self {
26
23.7M
       let v : std::vec::Vec<T> = std::vec::Vec::new();
27
23.7M
       let b = v.into_boxed_slice();
28
23.7M
       return WrapBox::<T>(b);
29
23.7M
    }
30
}
31
32
impl<T> super::SliceWrapper<T> for WrapBox<T> {
33
8.27G
    fn slice(&self) -> & [T] {
34
8.27G
       return &*self.0
35
8.27G
    }
Unexecuted instantiation: <alloc_stdlib::heap_alloc::WrapBox<brotli::enc::interface::Command<brotli::enc::interface::SliceOffset>> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::interface::Command<brotli::enc::interface::SliceOffset>>>::slice
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::entropy_encode::HuffmanTree> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::entropy_encode::HuffmanTree>>::slice
Line
Count
Source
33
17.8M
    fn slice(&self) -> & [T] {
34
17.8M
       return &*self.0
35
17.8M
    }
Unexecuted instantiation: <alloc_stdlib::heap_alloc::WrapBox<brotli::enc::compat::CompatF8> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::compat::CompatF8>>::slice
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::cluster::HistogramPair> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::cluster::HistogramPair>>::slice
Line
Count
Source
33
750
    fn slice(&self) -> & [T] {
34
750
       return &*self.0
35
750
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::command::Command> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::command::Command>>::slice
Line
Count
Source
33
11.9k
    fn slice(&self) -> & [T] {
34
11.9k
       return &*self.0
35
11.9k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::ContextType> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::histogram::ContextType>>::slice
Line
Count
Source
33
6.71k
    fn slice(&self) -> & [T] {
34
6.71k
       return &*self.0
35
6.71k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramCommand> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::histogram::HistogramCommand>>::slice
Line
Count
Source
33
49.7k
    fn slice(&self) -> & [T] {
34
49.7k
       return &*self.0
35
49.7k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramLiteral> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::histogram::HistogramLiteral>>::slice
Line
Count
Source
33
348k
    fn slice(&self) -> & [T] {
34
348k
       return &*self.0
35
348k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramDistance> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::histogram::HistogramDistance>>::slice
Line
Count
Source
33
45.2k
    fn slice(&self) -> & [T] {
34
45.2k
       return &*self.0
35
45.2k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::backward_references::hash_to_binary_tree::ZopfliNode> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli::enc::backward_references::hash_to_binary_tree::ZopfliNode>>::slice
Line
Count
Source
33
14.5k
    fn slice(&self) -> & [T] {
34
14.5k
       return &*self.0
35
14.5k
    }
<alloc_stdlib::heap_alloc::WrapBox<f32> as alloc_no_stdlib::allocated_memory::SliceWrapper<f32>>::slice
Line
Count
Source
33
4.16G
    fn slice(&self) -> & [T] {
34
4.16G
       return &*self.0
35
4.16G
    }
<alloc_stdlib::heap_alloc::WrapBox<i32> as alloc_no_stdlib::allocated_memory::SliceWrapper<i32>>::slice
Line
Count
Source
33
22.2k
    fn slice(&self) -> & [T] {
34
22.2k
       return &*self.0
35
22.2k
    }
<alloc_stdlib::heap_alloc::WrapBox<u16> as alloc_no_stdlib::allocated_memory::SliceWrapper<u16>>::slice
Line
Count
Source
33
73.7M
    fn slice(&self) -> & [T] {
34
73.7M
       return &*self.0
35
73.7M
    }
<alloc_stdlib::heap_alloc::WrapBox<u64> as alloc_no_stdlib::allocated_memory::SliceWrapper<u64>>::slice
Line
Count
Source
33
44.4M
    fn slice(&self) -> & [T] {
34
44.4M
       return &*self.0
35
44.4M
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli_decompressor::huffman::HuffmanCode> as alloc_no_stdlib::allocated_memory::SliceWrapper<brotli_decompressor::huffman::HuffmanCode>>::slice
Line
Count
Source
33
114M
    fn slice(&self) -> & [T] {
34
114M
       return &*self.0
35
114M
    }
<alloc_stdlib::heap_alloc::WrapBox<u8> as alloc_no_stdlib::allocated_memory::SliceWrapper<u8>>::slice
Line
Count
Source
33
3.69G
    fn slice(&self) -> & [T] {
34
3.69G
       return &*self.0
35
3.69G
    }
<alloc_stdlib::heap_alloc::WrapBox<u32> as alloc_no_stdlib::allocated_memory::SliceWrapper<u32>>::slice
Line
Count
Source
33
162M
    fn slice(&self) -> & [T] {
34
162M
       return &*self.0
35
162M
    }
36
}
37
38
impl<T> super::SliceWrapperMut<T> for WrapBox<T> {
39
6.54G
    fn slice_mut(&mut self) -> &mut [T] {
40
6.54G
       return &mut*self.0
41
6.54G
    }
Unexecuted instantiation: <alloc_stdlib::heap_alloc::WrapBox<brotli::enc::interface::Command<brotli::enc::interface::SliceOffset>> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::interface::Command<brotli::enc::interface::SliceOffset>>>::slice_mut
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::entropy_encode::HuffmanTree> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::entropy_encode::HuffmanTree>>::slice_mut
Line
Count
Source
39
15.0M
    fn slice_mut(&mut self) -> &mut [T] {
40
15.0M
       return &mut*self.0
41
15.0M
    }
Unexecuted instantiation: <alloc_stdlib::heap_alloc::WrapBox<brotli::enc::compat::Compat16x16> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::compat::Compat16x16>>::slice_mut
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::compat::CompatF8> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::compat::CompatF8>>::slice_mut
Line
Count
Source
39
19.3k
    fn slice_mut(&mut self) -> &mut [T] {
40
19.3k
       return &mut*self.0
41
19.3k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::cluster::HistogramPair> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::cluster::HistogramPair>>::slice_mut
Line
Count
Source
39
54.3k
    fn slice_mut(&mut self) -> &mut [T] {
40
54.3k
       return &mut*self.0
41
54.3k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::command::Command> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::command::Command>>::slice_mut
Line
Count
Source
39
39.5k
    fn slice_mut(&mut self) -> &mut [T] {
40
39.5k
       return &mut*self.0
41
39.5k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::ContextType> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::histogram::ContextType>>::slice_mut
Line
Count
Source
39
6.71k
    fn slice_mut(&mut self) -> &mut [T] {
40
6.71k
       return &mut*self.0
41
6.71k
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramCommand> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::histogram::HistogramCommand>>::slice_mut
Line
Count
Source
39
6.41M
    fn slice_mut(&mut self) -> &mut [T] {
40
6.41M
       return &mut*self.0
41
6.41M
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramLiteral> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::histogram::HistogramLiteral>>::slice_mut
Line
Count
Source
39
51.5M
    fn slice_mut(&mut self) -> &mut [T] {
40
51.5M
       return &mut*self.0
41
51.5M
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::histogram::HistogramDistance> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::histogram::HistogramDistance>>::slice_mut
Line
Count
Source
39
3.62M
    fn slice_mut(&mut self) -> &mut [T] {
40
3.62M
       return &mut*self.0
41
3.62M
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli::enc::backward_references::hash_to_binary_tree::ZopfliNode> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli::enc::backward_references::hash_to_binary_tree::ZopfliNode>>::slice_mut
Line
Count
Source
39
29.0k
    fn slice_mut(&mut self) -> &mut [T] {
40
29.0k
       return &mut*self.0
41
29.0k
    }
<alloc_stdlib::heap_alloc::WrapBox<f32> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<f32>>::slice_mut
Line
Count
Source
39
48.4k
    fn slice_mut(&mut self) -> &mut [T] {
40
48.4k
       return &mut*self.0
41
48.4k
    }
<alloc_stdlib::heap_alloc::WrapBox<i32> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<i32>>::slice_mut
Line
Count
Source
39
22.2k
    fn slice_mut(&mut self) -> &mut [T] {
40
22.2k
       return &mut*self.0
41
22.2k
    }
<alloc_stdlib::heap_alloc::WrapBox<u16> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<u16>>::slice_mut
Line
Count
Source
39
36.2M
    fn slice_mut(&mut self) -> &mut [T] {
40
36.2M
       return &mut*self.0
41
36.2M
    }
<alloc_stdlib::heap_alloc::WrapBox<u64> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<u64>>::slice_mut
Line
Count
Source
39
82.0M
    fn slice_mut(&mut self) -> &mut [T] {
40
82.0M
       return &mut*self.0
41
82.0M
    }
<alloc_stdlib::heap_alloc::WrapBox<brotli_decompressor::huffman::HuffmanCode> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<brotli_decompressor::huffman::HuffmanCode>>::slice_mut
Line
Count
Source
39
686k
    fn slice_mut(&mut self) -> &mut [T] {
40
686k
       return &mut*self.0
41
686k
    }
<alloc_stdlib::heap_alloc::WrapBox<u8> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<u8>>::slice_mut
Line
Count
Source
39
5.96G
    fn slice_mut(&mut self) -> &mut [T] {
40
5.96G
       return &mut*self.0
41
5.96G
    }
<alloc_stdlib::heap_alloc::WrapBox<u32> as alloc_no_stdlib::allocated_memory::SliceWrapperMut<u32>>::slice_mut
Line
Count
Source
39
381M
    fn slice_mut(&mut self) -> &mut [T] {
40
381M
       return &mut*self.0
41
381M
    }
42
}
43
impl<T> ops::Index<usize> for WrapBox<T> {
44
  type Output = T;
45
  fn index(&self, index: usize) -> &T {
46
    &(*self.0)[index]
47
  }
48
}
49
50
impl<T> ops::IndexMut<usize> for WrapBox<T> {
51
  fn index_mut(&mut self, index: usize) -> &mut T {
52
    &mut (*self.0)[index]
53
  }
54
}
55
56
impl<T> ops::Index<Range<usize>> for WrapBox<T> {
57
  type Output = [T];
58
  fn index(&self, index: Range<usize>) -> &[T] {
59
    &(*self.0)[index]
60
  }
61
}
62
63
impl<T> ops::IndexMut<Range<usize>> for WrapBox<T> {
64
  fn index_mut(&mut self, index: Range<usize>) -> &mut [T] {
65
    &mut (*self.0)[index]
66
  }
67
}
68
69
70
pub struct HeapAlloc<T : Clone>{
71
   pub default_value : T,
72
}
73
74
impl<T: Clone+Default> Default for HeapAlloc<T> {
75
    fn default() -> Self {
76
        Self::new(T::default())
77
    }
78
}
79
80
impl<T : Clone> HeapAlloc<T> {
81
   pub fn new(data : T) -> HeapAlloc<T> {
82
      return HeapAlloc::<T>{default_value : data};
83
   }
84
}
85
86
impl<T : Clone> super::Allocator<T> for HeapAlloc<T> {
87
   type AllocatedMemory = WrapBox<T>;
88
   fn alloc_cell(self : &mut HeapAlloc<T>, len : usize) -> WrapBox<T> {
89
90
       let v : std::vec::Vec<T> = vec![self.default_value.clone();len];
91
       let b = v.into_boxed_slice();
92
       return WrapBox::<T>(b);
93
   }
94
   fn free_cell(self : &mut HeapAlloc<T>, _data : WrapBox<T>) {
95
96
   }
97
}
98
99
#[deprecated]
100
pub type HeapAllocUninitialized<T> = HeapAlloc<T>;
101
102
103
pub struct HeapPrealloc<'a, T : 'a> {
104
   freelist : std::boxed::Box<[&'a mut [T]]>,
105
}
106
define_stack_allocator_traits!(HeapPrealloc, heap);
107
108
impl<'a, T : Clone+'a> HeapPrealloc<'a, T> {
109
    fn make_freelist(freelist_size : usize) -> std::boxed::Box<[&'a mut[T]]> {
110
        let mut retval = Vec::<&'a mut[T]>::with_capacity(freelist_size);
111
        for _i in 0..freelist_size {
112
            retval.push(&mut[]);
113
        }
114
        return retval.into_boxed_slice();
115
    }
116
    pub fn new_allocator(freelist_size : usize,
117
                     memory_pool : &'a mut Box<[T]>,
118
                     initializer : fn(&mut[T])) -> super::StackAllocator<'a, T, HeapPrealloc<'a, T> > {
119
        let mut retval = super::StackAllocator::<T, HeapPrealloc<T> > {
120
            nop : &mut [],
121
            system_resources : HeapPrealloc::<T> {
122
                freelist : Self::make_freelist(freelist_size),
123
            },
124
            free_list_start : freelist_size,
125
            free_list_overflow_count : 0,
126
            initialize : initializer,
127
        };
128
        retval.free_cell(super::AllocatedStackMemory::<T>{mem:&mut*memory_pool});
129
        return retval;
130
    }
131
    #[cfg(feature="unsafe")]
132
    pub unsafe fn new_uninitialized_memory_pool(len : usize) -> Box<[T]> {
133
        let mut v : std::vec::Vec<T> = std::vec::Vec::with_capacity(len);
134
        v.set_len(len);
135
        return v.into_boxed_slice();
136
    }
137
}
138