zerocopy
این crate zerocopy
(از Fuchsia) صفات و ماکروهایی را برای تبدیل ایمن بین دنبالههای بایت و انواع دیگر فراهم میکند.
این برای MMIO مناسب نیست (زیرا از خواندن و نوشتن فرار یا volatile استفاده نمیکند)، اما میتواند برای کار با ساختارهای مشترک با سخت افزار مفید باشد. توسط DMA، یا از طریق برخی از رابطهای خارجی ارسال میشود.
Speaker Notes
-
FromBytes
را میتوان برای انواعی که هر الگوی بایتی برای آنها معتبر است پیادهسازی کرد و بنابراین میتوان با خیال راحت از یک دنباله بایتهای نامعتبر تبدیل کرد. - تلاش برای استخراج
FromBytes
برای این تایپها ناموفق خواهد بود، زیراRequestType
از همه مقادیر ممکن u32 به عنوان متمایزکننده استفاده نمیکند، بنابراین همه الگوهای بایت معتبر نیستند. zerocopy::byteorder
دارای تایپهای برای اعداد اولیه مطلع از byte-order است.- مثال را با
cargo run
درsrc/bare-metal/useful-crates/zerocopy-example/
اجرا کنید. (به دلیل وابستگی به crate در Playground اجرا نمیشود.)