You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: batch_header.rs
    path of file: ./repos/fluvio/crates/fluvio-storage/src
    
    the code of the file until where you have to start completion: use fluvio_protocol::{Decoder, Encoder};
use fluvio_protocol::record::BatchRecords;

use crate::batch::FileBatchStream;
use crate::batch::FileBatchPos;

pub type BatchHeaderStream = FileBatchStream<FileEmptyRecords>;

pub type BatchHeaderPos = FileBatchPos<FileEmptyRecords>;

#[derive(Default, Debug, Encoder, Decoder)]
pub struct FileEmptyRecords {}

impl BatchRecords for FileEmptyRecords {
    fn remainder_bytes(&self, _remainder: usize) -> usize {
        0
    }
}

#[cfg(test)]
#[cfg(feature = "fixture")]
mod tests {

    use std::env::temp_dir;
    use std::path::PathBuf;
    use std::sync::Arc;
    use std::time::Instant;

    use tracing::debug;

    use fluvio_protocol::record::Offset;
    use flv_util::fixture::{ensure_new_dir};

    use crate::fixture::BatchProducer;
    use crate::mut_records::MutFileRecords;
    use crate::config::ReplicaConfig;
    use crate::records::FileRecords;
    us
    
    async fn test_find_position() {
        let mut header_stream = BatchHeaderStream::open("/tmp/bad_header.log")
            .await
            .expect("open");

        header_stream.set_absolute(55205702).await.expect("set");

        let offset_seek = 46612;

        let mut found = true;
        while let Some(batch_pos) = header_stream.try_next().await.expect("ok") {
            let pos = batch_pos.get_pos();
            let batch = batch_pos.inner();
            debug!(
                base_offset = batch.base_offset,
                batch_len = batch.batch_len,
                last_offset = batch.get_last_offset(),
                "batch_pos"
            );
            let last_offset = batch.get_last_offset();
            if last_offset >= offset_seek {
                debug!(last_offset, "found batch last offset");
                found = true;
                break;
            } else {
                debug!(last_offset, "skipping batch end offset");
            }
        }

        assert!(found);
    }