usestd::sync::Arc;usecrate::error::CaptureError;usecrate::frame::Frame;/// A source of frames. The session's capture loop calls `capture_frame` at the
/// session's capture rate; implementations should return the freshest frame
/// available. Real backends (scap) arrive in a later milestone.
#[async_trait::async_trait]pubtraitFrameSource: Send + 'static {
async fncapture_frame(&mutself)->Result<Arc<Frame>, CaptureError>;}