fn build_owned()

in api_generator/src/generator/code_gen/url/url_builder.rs [171:196]


    fn build_owned(self) -> syn::Block {
        // collection of let {name}_str = [self.]{name}.[join(",")|to_string()];
        let let_params_exprs = Self::let_parameters_exprs(&self.path, self.parts);

        let mut let_encoded_params_exprs = Self::let_encoded_exprs(&self.path, self.parts);

        let url_ident = ident("p");
        let len_expr = {
            let lit_len_expr = Self::literal_length_expr(&self.path);
            let mut params_len_exprs = Self::parameter_length_exprs(&self.path);
            let mut len_exprs = vec![lit_len_expr];
            len_exprs.append(&mut params_len_exprs);
            Self::summed_length_expr(len_exprs)
        };
        let let_stmt = Self::let_p_stmt(url_ident.clone(), len_expr);

        let mut push_stmts = Self::push_str_stmts(url_ident.clone(), &self.path);
        let return_expr = syn::Stmt::Expr(Box::new(parse_expr(quote!(#url_ident.into()))));

        let mut stmts = let_params_exprs;
        stmts.append(&mut let_encoded_params_exprs);
        stmts.push(let_stmt);
        stmts.append(&mut push_stmts);
        stmts.push(return_expr);
        syn::Block { stmts }
    }