#iterator #row #column #col #imgref

imgref-iter

一个用于遍历 imgref 缓冲区行或列的小库。

8 个不稳定版本 (3 个破坏性更新)

0.4.0 2022年8月13日
0.3.3 2022年7月6日
0.3.1 2022年6月22日
0.2.0 2022年6月18日
0.1.2 2022年6月18日

1145Rust 模式

Download history 109/week @ 2024-03-17 110/week @ 2024-03-24 186/week @ 2024-03-31 146/week @ 2024-04-07 115/week @ 2024-04-14 177/week @ 2024-04-21 211/week @ 2024-04-28 278/week @ 2024-05-05 198/week @ 2024-05-12 249/week @ 2024-05-19 235/week @ 2024-05-26 85/week @ 2024-06-02 154/week @ 2024-06-09 170/week @ 2024-06-16 261/week @ 2024-06-23 41/week @ 2024-06-30

635 每月下载次数
4 个库中使用了 (2 个直接使用)

MIT 许可证

105KB
2K SLoC

imgref-iter

一个用于遍历 imgref 缓冲区行或列的小库。

此库导出四个特质,允许创建 imgref::Img 行或列的迭代器。

  • ImgIterPtr 用于 Img<*const [T]>;允许创建指向 *const 指针的迭代器

  • ImgIterPtrMut 用于 Img<*mut [T]>;允许创建指向 *mut 指针的迭代器

  • ImgIter 用于 Img<&[T]>;允许创建共享引用的迭代器

  • ImgIterMut 用于 Img<&mut [T]>;允许创建可变引用的迭代器

以及两个用于转换为 Img<*const [T]>Img<*mut [T]>

  • ImgAsPtr 用于转换为 Img<*const [T]>

  • ImgAsMutPtr 用于将转换到 Img<*mut [T]>

    这实际上不是通过任何东西实现的,而是 Img<*mut [T]>,但它的存在是为了记录为什么它不能实现为 Img<&mut [T]>

此外,当启用(实验性!)simd 功能时,还有另外四个特质 - ImgSimdIterImgSimdIterMutImgSimdIterPtrImgSimdIterPtrMut。这些允许一次性创建图像的多个行或列的迭代器。它们实际上并不依赖于 SIMD 或夜间编译器 - 它们只是同时返回多个项目。

ImgIterPtrImgIterPtrMut 上的方法被标记为 unsafe,因为它们依赖于提供的指针。由于指针迭代器可能比引用存在的时间更长,因此 ImgIterImgIterMut 无法包含安全版本。

有关更多信息,请参阅文档

依赖关系

~62KB