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: rw_internal_tables.rs
    path of file: ./repos/risingwave/src/frontend/src/catalog/system_catalog/rw_catalog
    
    the code of the file until where you have to start completion: // Copyright 2024 RisingWave Labs
//
// Licensed under the Apache License, Version 2.0 (the 
    
fn read_rw_internal_tables(reader: &SysCatalogReaderImpl) -> Result<Vec<RwInternalTable>> {
    let catalog_reader = reader.catalog_reader.read_guard();
    let schemas = catalog_reader.iter_schemas(&reader.auth_context.database)?;
    let user_reader = reader.user_info_reader.read_guard();
    let users = user_reader.get_all_users();
    let username_map = user_reader.get_user_name_map();

    Ok(schemas
        .flat_map(|schema| {
            schema.iter_internal_table().map(|table| RwInternalTable {
                id: table.id.table_id as i32,
                name: table.name().into(),
                schema_id: schema.id() as i32,
                owner: table.owner as i32,
                definition: table.create_sql(),
                acl: get_acl_items(
                    &Object::TableId(table.id.table_id),
                    true,
                    &users,
                    username_map,
                ),
                initialized_at: table.initialized_at_epoch.map(|e| e.as_timestamptz()),
                created_at: table.created_at_epoch.map(|e| e.as_timestamptz()),
                initialized_at_cluster_version: table.initialized_at_cluster_version.clone(),
                created_at_cluster_version: table.created_at_cluster_version.clone(),
            })
        })
        .collect())
}