Doesn't have a size known at compile-time

Hi I am a beginner learning Rust and from the book I have I am putting in code into an IDE. When I run the code I get the following error at two places: 'doesn't have a size known at compile-time'
I would really like to understand why I am getting this error and if anyone can help it would be great. Here is the entire code

extern crate urlencoded;
extern crate router;
extern crate iron;
#[macro_use] extern crate mime;

use iron::prelude::*;
use iron::status;
use router::Router;
use std::str::FromStr;
use urlencoded::UrlEncodedBody;

fn get_form(_request:&mut Request) -> IronResult<Response>{
    let mut response = Response::new();

    response.set_mut(status::Ok);
    response.set_mut(mime!(Text/Html; Charset=Utf8));
    response.set_mut(r#"
    <title>GCD Calculator</title>
    <form action="/gcd" method="post">
    <inpt type="text" name="n"/>
    <input type="text" name="n"/>
    <button type="submit">Computer GCD</button>
    </form>"#);
    Ok(response)
}

fn post_gcd(request: &mut Rerquest) -> IronResult<Response>{
    let mut response = Response::new();

    let form_data = match request.get_ref::<UrlEncodedBody>(){
        Err(e) =>{
            response.set_mut(status::BadRequest);
            response.set_mut(format!("Error parsing form data: {:?}\n", e));
            return Ok(response);
        }
        Ok(map) => map
    };
    let unparsed_numbers = match form_data.get("n"){
        None => {
            response.set_mut(status::BadRequest);
            response.set_mut(format!("form data has no 'n' parameter\n"));
            return Ok(response);
        }
        Some(nums) => nums
    };

    let mut numbers = Vec::new();
    for unparsed in unparsed_numbers{
        match u64::from_str(&unparsed){
            Err(_) => {
                response.set_mut(status::BadRequest);
                response.set_mut(format!("Value for 'n' parameter not a number: {:?}\n", unparsed));
                return Ok(response);
                }
                Ok(n) => {numbers.push(n);}
            }
        }
        let mut d = numbers[0];
        for m in &numbers[1..]{
            d = gcd(d, *m);
        }

        response.set_mut(stats::Ok);
        response.set_mut(mime!(Text/Html; Charset=Utf8));
        response.set_mut(format!("The greatest common divisor of the numbers {:?} is <b>{}</b>\n",numbers, d));
        Ok(response)
    }


fn main() {
let mut router = Router::new();

router.get("/", get_form, "root");
router.post("/gcd",post_gcd, "gcd");

 println!("Serving on http://localhost:3000...");
 Iron::new(get_form).http("localhost:3000").unwrap();
}

Which places? If you could copy the entire error output, that would be helpful.

Thanks for responding but I checked everything again and all the errors and found my mistake. I had misspelled something and after fixing that and including a function it works now. Sorry for wasting your time

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.