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: schema.rs
    path of file: ./repos/pavex/examples/starter/server/src/configuration
    
    the code of the file until where you have to start completion: use crate::configuration::ApplicationProfile;
use anyhow::Context;
use app::configuration::AppConfig;
use figment::providers::{Env, Format, Yaml};
use figment::Figment;
use pavex::server::IncomingStream;
use std::net::SocketAddr;

#[derive(serde::Deserialize, Debug, Clone)]
/// The top-level configuration object, determining the schema
/// we expect to see in the configuration files stored under `api_server/configuration`.
///
/// It is def
    
    pub fn load(default_profile: Option<ApplicationProfile>) -> Result<Config, anyhow::Error> {
        let application_profile = ApplicationProfile::load(default_profile)
            .context("Failed to load the desired application profile")?;

        let configuration_dir = {
            let manifest_dir = env!(
                "CARGO_MANIFEST_DIR",
                "`CARGO_MANIFEST_DIR` was not set. Are you using a custom build system?"
            );
            std::path::Path::new(manifest_dir).join("configuration")
        };

        let base_filepath = configuration_dir.join("base.yml");

        let profile_filename = format!("{}.yml", application_profile.as_str());
        let profile_filepath = configuration_dir.join(profile_filename);

        let figment = Figment::new()
            .merge(Yaml::file(base_filepath))
            .merge(Yaml::file(profile_filepath))
            .merge(Env::prefixed("APP_").split("__"));

        let configuration: Config = figment
            .extract()
            .context("Failed to load hierarchical configuration")?;
        Ok(configuration)
    }