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: lib.rs
    path of file: ./repos/holochain-rust/crates/hdk/wasm-test/src
    
    the code of the file until where you have to start completion: #[macro_use]
extern crate hdk;
extern crate holochain_wasm_utils;
extern crate serde;
extern crate serde_json;
#[macro_use]
extern crate serde_derive;
extern crate boolinator;
#[macro_use]
extern crate holochain_json_derive;


use boolinator::Boolinator;
use hdk::{
    AGENT_ADDRESS,
    DNA_AD
    
fn handle_check_app_entry_address() -> ZomeApiResult<Address> {
    // Setup
    let entry_value = AppEntryValue::from(TestEntryType {
        stuff: "entry1".into(),
    });
    let entry_type = AppEntryType::from("testEntryType");
    let entry = Entry::App(entry_type, entry_value.clone());

    let commit_result = hdk::commit_entry(&entry);
    if commit_result.is_err() {
        return commit_result.into();
    }

    // Check bad entry type name
    let bad_result = hdk::entry_address(&Entry::App("bad".into(), entry_value.clone()));
    if !bad_result.is_err() {
        return bad_result.into();
    }

    // Check good entry type name
    let entry_address_result = hdk::entry_address(&entry);

    if commit_result == entry_address_result {
        entry_address_result
    } else {
        Err(ZomeApiError::from(format!(
            "commit result: {:?} hash result: {:?}",
            commit_result, bad_result
        )))
    }
}