use fastly::{Error, Request, Response};
use std::net::IpAddr;

#[fastly::main]
fn main(req: Request) -> Result<Response, Error> {
    log_fastly::init_simple("mylogs", log::LevelFilter::Info);

    let client_ip = req.get_client_ip_addr().unwrap();

    log::info!(
        "client_ip={} is {}",
        client_ip.to_string(),
        four_or_six(client_ip)
    );
    
    Ok(Response::new())
}

fn four_or_six(ip: IpAddr) -> String {
    match ip.is_ipv4() {
        true => "IPv4".to_string(),
        false => "IPv6".to_string(),
    }
}