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: cache_engine_test.rs
    path of file: ./repos/moon/nextgen/cache/tests
    
    the code of the file until where you have to start completion: use moon_cache::*;
use starbase_sandbox::create_empty_sandbox;
use std::env;

mod cache_engine {
    use super::*;

    #[test]
    fn creates_cache_dir_tag() {
        let sandbox = create_empty_sandbox();

        CacheEngine::new(sandbox.path()).unwrap();

        assert!(sandbox.path().join(".moon/cache/CACHEDIR.TAG").exists());
    }

    #[test]
    fn returns_d
    
    fn reads_cache_if_exists() {
        let sandbox = create_empty_sandbox();
        sandbox.create_file(
            ".moon/cache/states/state.json",
            r#"{ "lastHash": "abc123" }"#,
        );

        let engine = CacheEngine::new(sandbox.path()).unwrap();
        let item = engine.cache_state::<CommonState>("state.json").unwrap();

        assert_eq!(
            item.data,
            CommonState {
                last_hash: "abc123".into()
            }
        );
    }