gitextract_8x970ict/ ├── .cargo/ │ └── config.toml ├── .clippy.toml ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.md │ │ ├── config.yml │ │ ├── feature-request.md │ │ └── suggestion.md │ ├── dependabot.yml │ └── workflows/ │ ├── docs.yml │ ├── loco-gen-ci.yml │ ├── loco-gen-deploy.yml │ ├── loco-new.yml │ ├── loco-rs-ci-sanity.yml │ └── loco-rs-ci.yml ├── .gitignore ├── .rustfmt.toml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Cargo.toml ├── DEVELOPMENT.md ├── LICENSE ├── README-pt_BR.md ├── README-zh_CN.md ├── README.es.md ├── README.fr.md ├── README.ja.md ├── README.ko.md ├── README.md ├── README.ru.md ├── SECURITY.md ├── build/ │ └── embedded_assets.rs ├── build.rs ├── docs-site/ │ ├── .gitignore │ ├── config.toml │ ├── content/ │ │ ├── _index.md │ │ ├── authors/ │ │ │ ├── _index.md │ │ │ ├── limpidcrypto.md │ │ │ └── team-loco.md │ │ ├── blog/ │ │ │ ├── _index.md │ │ │ ├── angular-frontend.md │ │ │ ├── axum-session.md │ │ │ ├── deploy-aws.md │ │ │ ├── frontend-website.md │ │ │ └── hello-world.md │ │ ├── casts/ │ │ │ ├── 001-dynamic-responses-and-content-types.md │ │ │ ├── 002-routes-and-prefixes.md │ │ │ ├── 003-scaffolding-crud-with-html.md │ │ │ ├── 004-creating-tasks.md │ │ │ ├── 005-testing-tasks.md │ │ │ ├── 006-mailers.md │ │ │ ├── 007-htmx.md │ │ │ └── _index.md │ │ ├── docs/ │ │ │ ├── _index.md │ │ │ ├── extras/ │ │ │ │ ├── _index.md │ │ │ │ ├── authentication.md │ │ │ │ ├── pluggability.md │ │ │ │ ├── upgrades.md │ │ │ │ └── websocket.md │ │ │ ├── getting-started/ │ │ │ │ ├── _index.md │ │ │ │ ├── axum-users.md │ │ │ │ ├── guide.md │ │ │ │ ├── starters.md │ │ │ │ └── tour/ │ │ │ │ └── index.md │ │ │ ├── infrastructure/ │ │ │ │ ├── _index.md │ │ │ │ ├── cache.md │ │ │ │ ├── data.md │ │ │ │ ├── deployment.md │ │ │ │ └── storage.md │ │ │ ├── processing/ │ │ │ │ ├── _index.md │ │ │ │ ├── mailers.md │ │ │ │ ├── scheduler.md │ │ │ │ ├── task.md │ │ │ │ └── workers.md │ │ │ ├── resources/ │ │ │ │ ├── _index.md │ │ │ │ ├── around-the-web.md │ │ │ │ └── faq.md │ │ │ └── the-app/ │ │ │ ├── _index.md │ │ │ ├── controller.md │ │ │ ├── models.md │ │ │ ├── views.md │ │ │ └── your-project.md │ │ └── privacy-policy/ │ │ └── _index.md │ ├── package.json │ ├── static/ │ │ ├── ahrefs_f06cfb9c2671c1b7a5b6eec0d47a07719bd6d5a2240b829cad6a3f40684fa370 │ │ ├── js/ │ │ │ ├── main.js │ │ │ └── search.js │ │ ├── styles/ │ │ │ └── styles.css │ │ ├── syntax-theme-dark.css │ │ └── syntax-theme-light.css │ ├── styles/ │ │ └── styles.css │ ├── tailwind.config.js │ ├── templates/ │ │ ├── 404.html │ │ ├── base.html │ │ ├── blog/ │ │ │ ├── atom.xml │ │ │ ├── page.html │ │ │ ├── rss.xml │ │ │ └── section.html │ │ ├── casts/ │ │ │ ├── page.html │ │ │ └── section.html │ │ ├── docs/ │ │ │ ├── page.html │ │ │ └── section.html │ │ ├── index.html │ │ ├── macros/ │ │ │ ├── docs-edit-page.html │ │ │ ├── docs-navigation.html │ │ │ ├── docs-sidebar.html │ │ │ ├── docs-toc.html │ │ │ ├── footer.html │ │ │ ├── header.html │ │ │ ├── javascript.html │ │ │ ├── page-publish-metadata.html │ │ │ └── youtube.html │ │ ├── page.html │ │ ├── section.html │ │ ├── shortcodes/ │ │ │ └── get_env.html │ │ ├── taxonomy_list.html │ │ └── taxonomy_single.html │ └── translations/ │ └── tour-fr.md ├── loco-cli/ │ ├── .gitignore │ ├── .rustfmt.toml │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── bin/ │ │ └── main.rs │ └── lib.rs ├── loco-gen/ │ ├── .gitattributes │ ├── Cargo.toml │ ├── src/ │ │ ├── controller.rs │ │ ├── infer.rs │ │ ├── lib.rs │ │ ├── mappings.json │ │ ├── migration.rs │ │ ├── model.rs │ │ ├── scaffold.rs │ │ ├── snapshots/ │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array!_big_int].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array!_bool].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array!_double].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array!_float].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array!_int].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array!_string].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array^_big_int].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array^_bool].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array^_double].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array^_float].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array^_int].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array^_string].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array_big_int].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array_bool].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array_double].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array_float].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array_int].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_array_string].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_big_int!_big_int!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_big_int^_big_int^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_big_int_big_int].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_big_unsigned!_big_unsigned!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_big_unsigned^_big_unsigned^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_big_unsigned_big_unsigned].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_binary_len!_binary_len!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_binary_len^_binary_len^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_binary_len_binary_len].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_blob!_blob!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_blob^_blob^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_blob_blob].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_bool!_bool!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_bool_bool].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_date!_date!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_date^_date^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_date_date].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_date_time!_date_time!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_date_time^_date_time^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_date_time_date_time].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_decimal!_decimal!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_decimal^_decimal^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_decimal_decimal].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_decimal_len!_decimal_len!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_decimal_len^_decimal_len^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_decimal_len_decimal_len].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_double!_double!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_double^_double^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_double_double].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_float!_float!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_float^_float^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_float_float].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_int!_int!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_int^_int^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_int_int].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_json!_json!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_json_json].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_jsonb!_jsonb!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_jsonb^_jsonb^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_jsonb_jsonb].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_money!_money!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_money^_money^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_money_money].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_small_int!_small_int!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_small_int^_small_int^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_small_int_small_int].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_small_unsigned!_small_unsigned!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_small_unsigned^_small_unsigned^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_small_unsigned_small_unsigned].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_string!_string!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_string^_string^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_string_string].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_text!_text!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_text^_text^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_text_text].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_tstz!_tstz!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_tstz_tstz].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_unsigned!_unsigned!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_unsigned^_unsigned^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_unsigned_unsigned].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_uuid!_uuid!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_uuid^_uuid^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_uuid_uuid].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_var_binary!_var_binary!].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_var_binary^_var_binary^].snap │ │ │ ├── loco_gen__tera_ext__tests__can_render_form_field_[form_var_binary_var_binary].snap │ │ │ └── loco_gen__tera_ext__tests__can_render_view_field.snap │ │ ├── template.rs │ │ ├── templates/ │ │ │ ├── controller/ │ │ │ │ ├── api/ │ │ │ │ │ ├── controller.t │ │ │ │ │ └── test.t │ │ │ │ ├── html/ │ │ │ │ │ ├── controller.t │ │ │ │ │ └── view.t │ │ │ │ └── htmx/ │ │ │ │ ├── controller.t │ │ │ │ └── view.t │ │ │ ├── data/ │ │ │ │ ├── 0_mod.t │ │ │ │ ├── data.t │ │ │ │ ├── mod.t │ │ │ │ └── struct.t │ │ │ ├── deployment/ │ │ │ │ ├── docker/ │ │ │ │ │ ├── docker.t │ │ │ │ │ └── ignore.t │ │ │ │ └── nginx/ │ │ │ │ └── nginx.t │ │ │ ├── mailer/ │ │ │ │ ├── html.t │ │ │ │ ├── mailer.t │ │ │ │ ├── subject.t │ │ │ │ └── text.t │ │ │ ├── migration/ │ │ │ │ ├── add_columns.t │ │ │ │ ├── add_references.t │ │ │ │ ├── empty.t │ │ │ │ ├── join_table.t │ │ │ │ └── remove_columns.t │ │ │ ├── model/ │ │ │ │ ├── model.t │ │ │ │ └── test.t │ │ │ ├── scaffold/ │ │ │ │ ├── api/ │ │ │ │ │ ├── controller.t │ │ │ │ │ └── test.t │ │ │ │ ├── html/ │ │ │ │ │ ├── base.t │ │ │ │ │ ├── controller.t │ │ │ │ │ ├── view.t │ │ │ │ │ ├── view_create.t │ │ │ │ │ ├── view_edit.t │ │ │ │ │ ├── view_list.t │ │ │ │ │ └── view_show.t │ │ │ │ └── htmx/ │ │ │ │ ├── base.t │ │ │ │ ├── controller.t │ │ │ │ ├── view.t │ │ │ │ ├── view_create.t │ │ │ │ ├── view_edit.t │ │ │ │ ├── view_list.t │ │ │ │ └── view_show.t │ │ │ ├── scheduler/ │ │ │ │ └── scheduler.t │ │ │ ├── task/ │ │ │ │ ├── task.t │ │ │ │ └── test.t │ │ │ └── worker/ │ │ │ ├── test.t │ │ │ └── worker.t │ │ ├── tera_ext.rs │ │ └── testutil.rs │ └── tests/ │ ├── db.rs │ ├── mod.rs │ ├── snapshots/ │ │ ├── db__migrations_flow_postgres.snap │ │ ├── db__migrations_flow_sqlite.snap │ │ ├── r#mod__db__migrations_flow_postgres.snap │ │ └── r#mod__db__migrations_flow_sqlite.snap │ └── templates/ │ ├── controller.rs │ ├── deployment.rs │ ├── mailer.rs │ ├── migration.rs │ ├── mod.rs │ ├── model.rs │ ├── scaffold.rs │ ├── scheduler.rs │ ├── snapshots/ │ │ ├── generate[controller_file]@Api_controller.snap │ │ ├── generate[controller_file]@Api_scaffold.snap │ │ ├── generate[controller_file]@Html_controller.snap │ │ ├── generate[controller_file]@Html_scaffold.snap │ │ ├── generate[controller_file]@Htmx_controller.snap │ │ ├── generate[controller_file]@Htmx_scaffold.snap │ │ ├── generate[controller_file]@scheduler.snap │ │ ├── generate[controller_file]@task.snap │ │ ├── generate[controller_file]@worker.snap │ │ ├── generate[docker_file_[0]_[false]]@deployment.snap │ │ ├── generate[docker_file_[0]_[true]]@deployment.snap │ │ ├── generate[docker_file_[2]_[false]]@deployment.snap │ │ ├── generate[docker_file_[2]_[true]]@deployment.snap │ │ ├── generate[html_t_file]@mailer.snap │ │ ├── generate[mailer_mod_rs]@mailer.snap │ │ ├── generate[migration_file]@Api_scaffold.snap │ │ ├── generate[migration_file]@Html_scaffold.snap │ │ ├── generate[migration_file]@Htmx_scaffold.snap │ │ ├── generate[migration_file]@add_column_migration.snap │ │ ├── generate[migration_file]@add_reference_migration.snap │ │ ├── generate[migration_file]@create_join_table_migration.snap │ │ ├── generate[migration_file]@create_join_table_without_tz_migration.snap │ │ ├── generate[migration_file]@create_table_migration.snap │ │ ├── generate[migration_file]@create_table_without_tz_migration.snap │ │ ├── generate[migration_file]@empty_migration.snap │ │ ├── generate[migration_file]@model.snap │ │ ├── generate[migration_file]@remove_columns_migration.snap │ │ ├── generate[nginx]@deployment.snap │ │ ├── generate[subject_t_file]@mailer.snap │ │ ├── generate[test_model]@Api_scaffold.snap │ │ ├── generate[test_model]@Html_scaffold.snap │ │ ├── generate[test_model]@Htmx_scaffold.snap │ │ ├── generate[test_model]@model.snap │ │ ├── generate[tests_controller_mod_rs]@Api_controller.snap │ │ ├── generate[tests_task_file]@task.snap │ │ ├── generate[tests_worker_file]@worker.snap │ │ ├── generate[text_t_file]@mailer.snap │ │ ├── generate[views_[create]]@Html_scaffold.snap │ │ ├── generate[views_[create]]@Htmx_scaffold.snap │ │ ├── generate[views_[edit]]@Html_scaffold.snap │ │ ├── generate[views_[edit]]@Htmx_scaffold.snap │ │ ├── generate[views_[list]]@Html_scaffold.snap │ │ ├── generate[views_[list]]@Htmx_scaffold.snap │ │ ├── generate[views_[show]]@Html_scaffold.snap │ │ ├── generate[views_[show]]@Htmx_scaffold.snap │ │ ├── generate[views_rs]@Html_scaffold.snap │ │ ├── generate[views_rs]@Htmx_scaffold.snap │ │ ├── generate_result@add_column_migration.snap │ │ ├── generate_result@add_reference_migration.snap │ │ ├── generate_result@create_join_table_migration.snap │ │ ├── generate_result@create_join_table_without_tz_migration.snap │ │ ├── generate_result@create_table_migration.snap │ │ ├── generate_result@create_table_without_tz_migration.snap │ │ ├── generate_result@empty_migration.snap │ │ ├── generate_result@remove_columns_migration.snap │ │ ├── generate_results@Api_controller.snap │ │ ├── generate_results@Api_scaffold.snap │ │ ├── generate_results@Html_controller.snap │ │ ├── generate_results@Html_scaffold.snap │ │ ├── generate_results@Htmx_controller.snap │ │ ├── generate_results@Htmx_scaffold.snap │ │ ├── inject[.config_toml]@deployment.snap │ │ ├── inject[app_rs]@Api_controller.snap │ │ ├── inject[app_rs]@Api_scaffold.snap │ │ ├── inject[app_rs]@Html_controller.snap │ │ ├── inject[app_rs]@Html_scaffold.snap │ │ ├── inject[app_rs]@Htmx_controller.snap │ │ ├── inject[app_rs]@Htmx_scaffold.snap │ │ ├── inject[app_rs]@task.snap │ │ ├── inject[app_rs]@worker.snap │ │ ├── inject[controller_mod_rs]@Api_controller.snap │ │ ├── inject[controller_mod_rs]@Api_scaffold.snap │ │ ├── inject[controller_mod_rs]@Html_controller.snap │ │ ├── inject[controller_mod_rs]@Html_scaffold.snap │ │ ├── inject[controller_mod_rs]@Htmx_controller.snap │ │ ├── inject[controller_mod_rs]@Htmx_scaffold.snap │ │ ├── inject[mailer_mod_rs]@mailer.snap │ │ ├── inject[migration_lib]@Api_scaffold.snap │ │ ├── inject[migration_lib]@Html_scaffold.snap │ │ ├── inject[migration_lib]@Htmx_scaffold.snap │ │ ├── inject[migration_lib]@add_column_migration.snap │ │ ├── inject[migration_lib]@add_reference_migration.snap │ │ ├── inject[migration_lib]@create_join_table_migration.snap │ │ ├── inject[migration_lib]@create_join_table_without_tz_migration.snap │ │ ├── inject[migration_lib]@create_table_migration.snap │ │ ├── inject[migration_lib]@create_table_without_tz_migration.snap │ │ ├── inject[migration_lib]@empty_migration.snap │ │ ├── inject[migration_lib]@model.snap │ │ ├── inject[migration_lib]@remove_columns_migration.snap │ │ ├── inject[task_mod_rs]@task.snap │ │ ├── inject[test_mod]@Api_scaffold.snap │ │ ├── inject[test_mod]@Html_scaffold.snap │ │ ├── inject[test_mod]@Htmx_scaffold.snap │ │ ├── inject[test_mod]@model.snap │ │ ├── inject[tests_controller_mod_rs]@Api_controller.snap │ │ ├── inject[tests_task_mod]@task.snap │ │ ├── inject[tests_worker_mod]@worker.snap │ │ ├── inject[views_[GET]]@Html_controller.snap │ │ ├── inject[views_[GET]]@Htmx_controller.snap │ │ ├── inject[views_[POST]]@Html_controller.snap │ │ ├── inject[views_[POST]]@Htmx_controller.snap │ │ ├── inject[views_mod_rs]@Html_scaffold.snap │ │ ├── inject[views_mod_rs]@Htmx_scaffold.snap │ │ └── inject[worker_mod_rs]@worker.snap │ ├── task.rs │ ├── utils.rs │ └── worker.rs ├── loco-new/ │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ ├── README.md │ ├── base_template/ │ │ ├── .cargo/ │ │ │ └── config.toml.t │ │ ├── .github/ │ │ │ └── workflows/ │ │ │ └── ci.yaml.t │ │ ├── .gitignore │ │ ├── .rustfmt.toml │ │ ├── Cargo.toml.t │ │ ├── README.md │ │ ├── assets/ │ │ │ ├── i18n/ │ │ │ │ ├── de-DE/ │ │ │ │ │ └── main.ftl │ │ │ │ ├── en-US/ │ │ │ │ │ └── main.ftl │ │ │ │ └── shared.ftl │ │ │ ├── static/ │ │ │ │ └── 404.html │ │ │ └── views/ │ │ │ └── home/ │ │ │ └── hello.html │ │ ├── config/ │ │ │ ├── development.yaml.t │ │ │ └── test.yaml.t │ │ ├── examples/ │ │ │ └── playground.rs.t │ │ ├── frontend/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── biome.json │ │ │ ├── package.json │ │ │ ├── rsbuild.config.ts │ │ │ ├── src/ │ │ │ │ ├── LocoSplash.tsx │ │ │ │ ├── env.d.ts │ │ │ │ ├── index.css │ │ │ │ └── index.tsx │ │ │ └── tsconfig.json │ │ ├── migration/ │ │ │ ├── Cargo.toml.t │ │ │ └── src/ │ │ │ ├── lib.rs.t │ │ │ └── m20220101_000001_users.rs │ │ ├── src/ │ │ │ ├── app.rs.t │ │ │ ├── bin/ │ │ │ │ ├── main.rs.t │ │ │ │ └── tool.rs.t │ │ │ ├── controllers/ │ │ │ │ ├── auth.rs │ │ │ │ ├── home.rs │ │ │ │ └── mod.rs.t │ │ │ ├── data/ │ │ │ │ └── mod.rs.t │ │ │ ├── fixtures/ │ │ │ │ └── users.yaml │ │ │ ├── initializers/ │ │ │ │ ├── mod.rs.t │ │ │ │ └── view_engine.rs │ │ │ ├── lib.rs.t │ │ │ ├── mailers/ │ │ │ │ ├── auth/ │ │ │ │ │ ├── forgot/ │ │ │ │ │ │ ├── html.t │ │ │ │ │ │ ├── subject.t │ │ │ │ │ │ └── text.t │ │ │ │ │ ├── magic_link/ │ │ │ │ │ │ ├── html.t │ │ │ │ │ │ ├── subject.t │ │ │ │ │ │ └── text.t │ │ │ │ │ └── welcome/ │ │ │ │ │ ├── html.t │ │ │ │ │ ├── subject.t │ │ │ │ │ └── text.t │ │ │ │ ├── auth.rs │ │ │ │ └── mod.rs │ │ │ ├── models/ │ │ │ │ ├── _entities/ │ │ │ │ │ ├── mod.rs.t │ │ │ │ │ ├── prelude.rs.t │ │ │ │ │ └── users.rs │ │ │ │ ├── mod.rs.t │ │ │ │ └── users.rs │ │ │ ├── tasks/ │ │ │ │ ├── mod.rs.t │ │ │ │ └── user_create.rs │ │ │ ├── views/ │ │ │ │ ├── auth.rs │ │ │ │ ├── home.rs │ │ │ │ └── mod.rs.t │ │ │ └── workers/ │ │ │ ├── downloader.rs │ │ │ └── mod.rs.t │ │ └── tests/ │ │ ├── mod.rs.t │ │ ├── models/ │ │ │ ├── mod.rs.t │ │ │ ├── snapshots/ │ │ │ │ ├── can_create_with_password@users.snap │ │ │ │ ├── can_find_by_email@users-2.snap │ │ │ │ ├── can_find_by_email@users.snap │ │ │ │ ├── can_find_by_pid@users-2.snap │ │ │ │ ├── can_find_by_pid@users.snap │ │ │ │ ├── can_validate_model@users.snap │ │ │ │ └── handle_create_with_password_with_duplicate@users.snap │ │ │ └── users.rs.t │ │ ├── requests/ │ │ │ ├── auth.rs.t │ │ │ ├── home.rs.t │ │ │ ├── mod.rs.t │ │ │ ├── prepare_data.rs.t │ │ │ └── snapshots/ │ │ │ ├── can_auth_with_magic_link@auth_request.snap │ │ │ ├── can_get_current_user@auth_request.snap │ │ │ ├── can_login_without_verify@auth_request.snap │ │ │ ├── can_register@auth_request.snap │ │ │ ├── can_reset_password@auth_request.snap │ │ │ ├── login_with_invalid_password@auth_request.snap │ │ │ ├── login_with_valid_password@auth_request.snap │ │ │ └── resend_verification_user@auth_request.snap │ │ ├── tasks/ │ │ │ ├── mod.rs.t │ │ │ └── user_create.rs.t │ │ └── workers/ │ │ └── mod.rs │ ├── devnew.sh │ ├── setup.rhai │ ├── src/ │ │ ├── bin/ │ │ │ └── main.rs │ │ ├── generator/ │ │ │ ├── executer/ │ │ │ │ ├── filesystem.rs │ │ │ │ ├── inmem.rs │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ └── template.rs │ │ ├── lib.rs │ │ ├── settings.rs │ │ └── wizard.rs │ └── tests/ │ ├── assertion/ │ │ ├── mod.rs │ │ ├── string.rs │ │ ├── toml.rs │ │ └── yaml.rs │ ├── mod.rs │ ├── templates/ │ │ ├── asset.rs │ │ ├── auth.rs │ │ ├── background.rs │ │ ├── db.rs │ │ ├── features.rs │ │ ├── initializers.rs │ │ ├── mailer.rs │ │ ├── mod.rs │ │ ├── module_name.rs │ │ └── snapshots/ │ │ ├── r#mod__templates__asset__cargo_dependencies_Clientside.snap │ │ ├── r#mod__templates__asset__cargo_dependencies_None.snap │ │ ├── r#mod__templates__asset__cargo_dependencies_Serverside.snap │ │ ├── r#mod__templates__auth__src_app_rs_auth_false_None.snap │ │ ├── r#mod__templates__auth__src_app_rs_auth_false_Sqlite.snap │ │ ├── r#mod__templates__auth__src_app_rs_auth_true_None.snap │ │ ├── r#mod__templates__auth__src_app_rs_auth_true_Sqlite.snap │ │ ├── r#mod__templates__background__src_app_rs_Async.snap │ │ ├── r#mod__templates__background__src_app_rs_Blocking.snap │ │ ├── r#mod__templates__background__src_app_rs_None.snap │ │ ├── r#mod__templates__background__src_app_rs_Queue.snap │ │ ├── r#mod__templates__db__cargo_dependencies_None.snap │ │ ├── r#mod__templates__db__cargo_dependencies_Postgres.snap │ │ ├── r#mod__templates__db__cargo_dependencies_Sqlite.snap │ │ ├── r#mod__templates__db__config_development_yaml_config_database_Postgres.snap │ │ ├── r#mod__templates__db__config_development_yaml_config_database_Sqlite.snap │ │ ├── r#mod__templates__db__config_test_yaml_config_database_Postgres.snap │ │ ├── r#mod__templates__db__config_test_yaml_config_database_Sqlite.snap │ │ ├── r#mod__templates__db__src_app_rs_None.snap │ │ ├── r#mod__templates__db__src_app_rs_Postgres.snap │ │ ├── r#mod__templates__db__src_app_rs_Sqlite.snap │ │ ├── r#mod__templates__initializers__src_app_rs_with_initializers.snap │ │ ├── r#mod__templates__initializers__src_app_rs_without_initializers.snap │ │ ├── r#mod__templates__mailer__cargo_dependencies_mailer_false.snap │ │ └── r#mod__templates__mailer__cargo_dependencies_mailer_true.snap │ └── wizard/ │ ├── mod.rs │ └── new.rs ├── snipdoc.yml ├── src/ │ ├── app.rs │ ├── auth/ │ │ ├── jwt.rs │ │ ├── mod.rs │ │ └── snapshots/ │ │ ├── loco_rs__auth__jwt__tests__token expired.snap │ │ ├── loco_rs__auth__jwt__tests__valid token and custom array claims.snap │ │ ├── loco_rs__auth__jwt__tests__valid token and custom boolean claims.snap │ │ ├── loco_rs__auth__jwt__tests__valid token and custom nested array claims.snap │ │ ├── loco_rs__auth__jwt__tests__valid token and custom nested claims.snap │ │ ├── loco_rs__auth__jwt__tests__valid token and custom number claims.snap │ │ ├── loco_rs__auth__jwt__tests__valid token and custom string claims.snap │ │ └── loco_rs__auth__jwt__tests__valid token.snap │ ├── banner.rs │ ├── bgworker/ │ │ ├── mod.rs │ │ ├── pg.rs │ │ ├── redis.rs │ │ ├── snapshots/ │ │ │ ├── loco_rs__bgworker__pg__tests__can_complete_job_with_interval.snap │ │ │ ├── loco_rs__bgworker__pg__tests__can_dequeue.snap │ │ │ ├── loco_rs__bgworker__pg__tests__can_enqueue.snap │ │ │ ├── loco_rs__bgworker__pg__tests__can_fail_job.snap │ │ │ ├── loco_rs__bgworker__pg__tests__can_initialize_database.snap │ │ │ ├── loco_rs__bgworker__sqlt__tests__can_complete_job_with_interval.snap │ │ │ ├── loco_rs__bgworker__sqlt__tests__can_dequeue.snap │ │ │ ├── loco_rs__bgworker__sqlt__tests__can_enqueue.snap │ │ │ ├── loco_rs__bgworker__sqlt__tests__can_fail_job.snap │ │ │ ├── loco_rs__bgworker__sqlt__tests__sqlt_loco_queue.snap │ │ │ ├── loco_rs__bgworker__sqlt__tests__sqlt_loco_queue_lock.snap │ │ │ └── loco_rs__bgworker__tests__can_dump_jobs.snap │ │ └── sqlt.rs │ ├── boot.rs │ ├── cache/ │ │ ├── drivers/ │ │ │ ├── inmem.rs │ │ │ ├── mod.rs │ │ │ ├── null.rs │ │ │ └── redis.rs │ │ └── mod.rs │ ├── cargo_config.rs │ ├── cli.rs │ ├── config.rs │ ├── controller/ │ │ ├── app_routes.rs │ │ ├── backtrace.rs │ │ ├── describe.rs │ │ ├── extractor/ │ │ │ ├── auth.rs │ │ │ ├── mod.rs │ │ │ ├── shared_store.rs │ │ │ ├── snapshots/ │ │ │ │ ├── loco_rs__controller__extractor__auth__tests__extract_from_bearer.snap │ │ │ │ ├── loco_rs__controller__extractor__auth__tests__extract_from_cookie.snap │ │ │ │ ├── loco_rs__controller__extractor__auth__tests__extract_from_default.snap │ │ │ │ ├── loco_rs__controller__extractor__auth__tests__extract_from_multiple_locations.snap │ │ │ │ └── loco_rs__controller__extractor__auth__tests__extract_from_query.snap │ │ │ └── validate.rs │ │ ├── format.rs │ │ ├── middleware/ │ │ │ ├── _archive/ │ │ │ │ └── content_etag.rs │ │ │ ├── catch_panic.rs │ │ │ ├── compression.rs │ │ │ ├── cors.rs │ │ │ ├── etag.rs │ │ │ ├── fallback.html │ │ │ ├── fallback.rs │ │ │ ├── format.rs │ │ │ ├── limit_payload.rs │ │ │ ├── logger.rs │ │ │ ├── mod.rs │ │ │ ├── powered_by.rs │ │ │ ├── remote_ip.rs │ │ │ ├── request_id.rs │ │ │ ├── secure_headers.json │ │ │ ├── secure_headers.rs │ │ │ ├── snapshots/ │ │ │ │ ├── loco_rs__controller__middleware__cors__tests__cors_OPTIONS_[allow_origins].snap │ │ │ │ ├── loco_rs__controller__middleware__cors__tests__cors_[default].snap │ │ │ │ ├── loco_rs__controller__middleware__cors__tests__cors_[with_allow_headers].snap │ │ │ │ ├── loco_rs__controller__middleware__cors__tests__cors_[with_allow_methods].snap │ │ │ │ ├── loco_rs__controller__middleware__cors__tests__cors_[with_expose_headers].snap │ │ │ │ ├── loco_rs__controller__middleware__cors__tests__cors_[with_max_age].snap │ │ │ │ ├── loco_rs__controller__middleware__remote_ip__tests__parsing-2.snap │ │ │ │ ├── loco_rs__controller__middleware__remote_ip__tests__parsing-3.snap │ │ │ │ ├── loco_rs__controller__middleware__remote_ip__tests__parsing-4.snap │ │ │ │ ├── loco_rs__controller__middleware__remote_ip__tests__parsing-5.snap │ │ │ │ ├── loco_rs__controller__middleware__remote_ip__tests__parsing-6.snap │ │ │ │ ├── loco_rs__controller__middleware__remote_ip__tests__parsing-7.snap │ │ │ │ ├── loco_rs__controller__middleware__remote_ip__tests__parsing-8.snap │ │ │ │ ├── loco_rs__controller__middleware__remote_ip__tests__parsing.snap │ │ │ │ ├── loco_rs__controller__middleware__request_id__tests__create_or_fetch_request_id-2.snap │ │ │ │ ├── loco_rs__controller__middleware__request_id__tests__create_or_fetch_request_id-3.snap │ │ │ │ ├── loco_rs__controller__middleware__request_id__tests__create_or_fetch_request_id-4.snap │ │ │ │ ├── loco_rs__controller__middleware__request_id__tests__create_or_fetch_request_id-5.snap │ │ │ │ ├── loco_rs__controller__middleware__request_id__tests__create_or_fetch_request_id.snap │ │ │ │ ├── loco_rs__controller__middleware__secure_headers__tests__can_override_headers.snap │ │ │ │ ├── loco_rs__controller__middleware__secure_headers__tests__can_set_headers.snap │ │ │ │ └── loco_rs__controller__middleware__secure_headers__tests__default_is_github_preset.snap │ │ │ ├── static_assets.rs │ │ │ ├── static_assets_embedded.rs │ │ │ └── timeout.rs │ │ ├── mod.rs │ │ ├── monitoring.rs │ │ ├── routes.rs │ │ ├── snapshots/ │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]_health].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]_ping].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]_readiness].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]api[slash]loco-rs].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]api[slash]loco].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]api[slash]v1[slash]notes].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]api[slash]v1[slash]users].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]multiple1].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]multiple2].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]multiple3].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]normalizer[slash]loco[slash]rs].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]normalizer[slash]multiple-end].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]normalizer[slash]multiple-start].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]normalizer[slash]no-slash].snap │ │ │ ├── loco_rs__controller__app_routes__tests__[[slash]normalizer].snap │ │ │ ├── loco_rs__controller__format__tests__builder_cookies_response.snap │ │ │ ├── loco_rs__controller__format__tests__builder_empty_response.snap │ │ │ ├── loco_rs__controller__format__tests__builder_html_response.snap │ │ │ ├── loco_rs__controller__format__tests__builder_json_response.snap │ │ │ ├── loco_rs__controller__format__tests__builder_redirect_response.snap │ │ │ ├── loco_rs__controller__format__tests__builder_redirect_with_custom_header_response.snap │ │ │ ├── loco_rs__controller__format__tests__builder_template_response.snap │ │ │ ├── loco_rs__controller__format__tests__builder_text_response.snap │ │ │ ├── loco_rs__controller__format__tests__builder_view_response-2.snap │ │ │ ├── loco_rs__controller__format__tests__builder_view_response.snap │ │ │ ├── loco_rs__controller__format__tests__empty_json_response_format.snap │ │ │ ├── loco_rs__controller__format__tests__empty_response_format.snap │ │ │ ├── loco_rs__controller__format__tests__html_response_format.snap │ │ │ ├── loco_rs__controller__format__tests__json_response_format.snap │ │ │ ├── loco_rs__controller__format__tests__redirect_response.snap │ │ │ ├── loco_rs__controller__format__tests__template_response.snap │ │ │ ├── loco_rs__controller__format__tests__text_response_format.snap │ │ │ ├── loco_rs__controller__format__tests__view_response-2.snap │ │ │ ├── loco_rs__controller__format__tests__view_response.snap │ │ │ └── loco_rs__controller__format__tests__yaml_response_format.snap │ │ └── views/ │ │ ├── engine.rs │ │ ├── engine_embedded.rs │ │ ├── mod.rs │ │ ├── pagination.rs │ │ └── tera_builtins/ │ │ ├── filters/ │ │ │ ├── mod.rs │ │ │ └── number.rs │ │ └── mod.rs │ ├── data.rs │ ├── db.rs │ ├── depcheck.rs │ ├── doctor.rs │ ├── env_vars.rs │ ├── environment.rs │ ├── errors.rs │ ├── hash.rs │ ├── initializers/ │ │ ├── extra_db.rs │ │ ├── mod.rs │ │ └── multi_db.rs │ ├── lib.rs │ ├── logger.rs │ ├── mailer/ │ │ ├── email_sender.rs │ │ ├── mod.rs │ │ ├── snapshots/ │ │ │ ├── loco_rs__mailer__email_sender__tests__can_send_email.snap │ │ │ ├── loco_rs__mailer__email_sender__tests__can_send_email_with_custom_headers.snap │ │ │ └── loco_rs__mailer__template__tests__can_render_template.snap │ │ └── template.rs │ ├── model/ │ │ ├── mod.rs │ │ └── query/ │ │ ├── dsl/ │ │ │ ├── date_range.rs │ │ │ └── mod.rs │ │ ├── mod.rs │ │ └── paginate/ │ │ └── mod.rs │ ├── prelude.rs │ ├── scheduler.rs │ ├── schema.rs │ ├── snapshots/ │ │ ├── loco_rs__auth__tests__token expired.snap │ │ ├── loco_rs__auth__tests__valid token.snap │ │ ├── loco_rs__db__tests__dump_tables_sqlite_all_types.snap │ │ ├── loco_rs__db__tests__dump_tables_sqlite_all_types_roundtrip.snap │ │ ├── loco_rs__scheduler__tests__can_display_scheduler.snap │ │ ├── loco_rs__scheduler__tests__can_prepare_command_[shell].snap │ │ ├── loco_rs__scheduler__tests__can_prepare_command_[task].snap │ │ ├── loco_rs__validation__tests__struct-[foo-bar].snap │ │ ├── loco_rs__validation__tests__struct-[foo].snap │ │ ├── loco_rs__worker__tests__default_custom_queues-2.snap │ │ ├── loco_rs__worker__tests__default_custom_queues-3.snap │ │ └── loco_rs__worker__tests__default_custom_queues.snap │ ├── storage/ │ │ ├── contents.rs │ │ ├── drivers/ │ │ │ ├── aws.rs │ │ │ ├── azure.rs │ │ │ ├── gcp.rs │ │ │ ├── local.rs │ │ │ ├── mem.rs │ │ │ ├── mod.rs │ │ │ ├── null.rs │ │ │ └── opendal_adapter.rs │ │ ├── mod.rs │ │ ├── strategies/ │ │ │ ├── backup.rs │ │ │ ├── mirror.rs │ │ │ ├── mod.rs │ │ │ └── single.rs │ │ └── stream.rs │ ├── task.rs │ ├── tera.rs │ ├── testing/ │ │ ├── db.rs │ │ ├── mod.rs │ │ ├── prelude.rs │ │ ├── redaction.rs │ │ ├── request.rs │ │ └── selector.rs │ ├── tests_cfg/ │ │ ├── app.rs │ │ ├── config.rs │ │ ├── controllers/ │ │ │ ├── auth.rs │ │ │ ├── home.rs │ │ │ └── mod.rs │ │ ├── db.rs │ │ ├── mod.rs │ │ ├── postgres.rs │ │ ├── queue.rs │ │ ├── redis.rs │ │ └── task.rs │ └── validation.rs ├── tests/ │ ├── build_scripts/ │ │ ├── embedded_assets.rs │ │ ├── mod.rs │ │ └── snapshots/ │ │ ├── r#mod__build_scripts__embedded_assets__build_static_assets_static.snap │ │ ├── r#mod__build_scripts__embedded_assets__build_static_assets_templates.snap │ │ ├── r#mod__build_scripts__embedded_assets__collected_all_files.snap │ │ ├── r#mod__build_scripts__embedded_assets__collected_css_files.snap │ │ ├── r#mod__build_scripts__embedded_assets__complex_template_inheritance.snap │ │ ├── r#mod__build_scripts__embedded_assets__discovered_directories.snap │ │ ├── r#mod__build_scripts__embedded_assets__empty_static_assets_rs.snap │ │ ├── r#mod__build_scripts__embedded_assets__empty_templates_rs.snap │ │ ├── r#mod__build_scripts__embedded_assets__static_assets_rs.snap │ │ ├── r#mod__build_scripts__embedded_assets__template_inheritance.snap │ │ └── r#mod__build_scripts__embedded_assets__view_templates_rs.snap │ ├── controller/ │ │ ├── extractor/ │ │ │ ├── auth/ │ │ │ │ ├── api_token.rs │ │ │ │ ├── jwt.rs │ │ │ │ ├── jwt_with_user.rs │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ ├── shared_store.rs │ │ │ └── validate.rs │ │ ├── from_ref.rs │ │ ├── into_response.rs │ │ ├── middlewares.rs │ │ ├── mod.rs │ │ └── snapshots/ │ │ ├── cors_[default]@middlewares.snap │ │ ├── cors_[disabled]@middlewares.snap │ │ ├── cors_[with_allow_headers]@middlewares.snap │ │ ├── cors_[with_allow_methods]@middlewares.snap │ │ ├── cors_[with_max_age]@middlewares.snap │ │ ├── panic@middlewares.snap │ │ ├── secure_headers_[empty]_overrides[none]@middlewares.snap │ │ ├── secure_headers_[github]_overrides[Content-Security-Policy]@middlewares.snap │ │ └── secure_headers_[none]_overrides[none]@middlewares.snap │ ├── fixtures/ │ │ ├── email_template/ │ │ │ └── test/ │ │ │ ├── html.t │ │ │ ├── subject.t │ │ │ └── text.t │ │ └── queue/ │ │ └── jobs.yaml │ ├── infra_cfg/ │ │ ├── mod.rs │ │ └── server.rs │ └── mod.rs └── xtask/ ├── .rustfmt.toml ├── Cargo.toml ├── README.md └── src/ ├── bin/ │ └── main.rs ├── bump_version.rs ├── ci.rs ├── errors.rs ├── lib.rs ├── out.rs ├── prompt.rs ├── utils.rs └── versions.rs