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: globals.rs
    path of file: ./repos/wayland-rs/wayland-tests/tests
    
    the code of the file until where you have to start completion: #[macro_use]
mod helpers;

use helpers::{globals, roundtrip, wayc, ways, TestServer};

use ways::protocol::wl_compositor::WlCompositor as ServerCompositor;
use ways::protocol::wl_output::WlOutput as ServerOutput;
use ways::protocol::wl_shell::WlShell as ServerShell;

#[test]
fn simple_global() {
    let mut server = TestServer::new();
    server.display.handle().create_global::<ServerHandler, ServerCompositor, _
    
fn multi_versions() {
    let mut server = TestServer::new();
    server.display.handle().create_global::<ServerHandler, ServerCompositor, _>(4, ());
    server.display.handle().create_global::<ServerHandler, ServerCompositor, _>(3, ());
    server.display.handle().create_global::<ServerHandler, ServerCompositor, _>(2, ());
    server.display.handle().create_global::<ServerHandler, ServerCompositor, _>(1, ());

    let (_, mut client) = server.add_client();
    let mut client_ddata = ClientHandler { globals: globals::GlobalList::new() };

    client.display.get_registry(&client.event_queue.handle(), ());

    roundtrip(&mut client, &mut server, &mut client_ddata, &mut ServerHandler).unwrap();

    let globals = client_ddata.globals.list();
    assert!(globals.len() == 4);
    let mut seen = [false; 4];
    for global in globals {
        assert!(global.interface == "wl_compositor");
        seen[global.version as usize - 1] = true;
    }
    assert_eq!(seen, [true, true, true, true]);
}