#[path = "module-polymorphism2-files"] mod mystd { #[path = "float-template"] mod float { // The type of the float import inst::T; // Unfortunate import template::*; export plus; // Define T as float #[path = "inst_float.rs"] mod inst; // Add in the implementation from a single source file #[path = "template.rs"] mod template; } #[path = "float-template"] mod f64 { import inst::T; // Unfortunate import template::*; export plus; // Define T as f64 #[path = "inst_f64.rs"] mod inst; // Use the implementation for the same source file! #[path = "template.rs"] mod template; } #[path = "float-template"] mod f32 { import inst::T; // Unfortunate import template::*; export plus; #[path = "inst_f32.rs"] mod inst; #[path = "template.rs"] mod template; } }