//! # BufferView — backend-specific accessor for I/O ring buffers
//!
//! A `BufferView` encapsulates per-backend rules (interleave/deinterleave,
//! stride, alignment) for reading input samples from and writing output
//! samples to cross-thread ring buffers or DMA windows.
//!
//! Used internally by `rill-io` backends (`DirectView`, `DeinterleavedView`).
//! Graph nodes access I/O through `IoCapture::read_input()` and
//! `IoPlayback::write_output()` — they do not use `BufferView` directly.
/// Backend-specific accessor for I/O ring buffers.
///
/// Encapsulates per-backend rules (interleave/deinterleave) for reading
/// input samples from and writing output samples to cross-thread ring buffers.
/// Each backend provides its own implementation.