gitextract_3xoiucv4/ ├── .codecov.yml ├── .gitattributes ├── .gitee/ │ └── ISSUE_TEMPLATE ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── 00-bug.yml │ │ ├── 01-enhance.yml │ │ ├── 02-feature.yml │ │ └── 03-question.yml │ ├── PULL_REQUEST_TEMPLATE.MD │ └── workflows/ │ ├── apollo/ │ │ ├── docker-compose.yml │ │ └── sql/ │ │ ├── apolloconfigdb.sql │ │ └── apolloportaldb.sql │ ├── ci-main.yml │ ├── ci-sub.yml │ ├── codeql.yml │ ├── consul/ │ │ ├── client.json │ │ ├── docker-compose.yml │ │ └── server.json │ ├── format-code-on-push.yml │ ├── gitee-sync.yml │ ├── golangci-lint.yml │ ├── issue-check-inactive.yml │ ├── issue-close-inactive.yml │ ├── issue-labeled.yml │ ├── issue-remove-inactive.yml │ ├── issue-remove-need-more-details.yml │ ├── issue-translator.yml │ ├── nacos/ │ │ ├── docker-compose.yml │ │ └── env/ │ │ └── nacos.env │ ├── redis/ │ │ └── docker-compose.yml │ ├── release.yml │ ├── scorecard.yml │ ├── scripts/ │ │ ├── before_script.sh │ │ ├── ci-main-clean.sh │ │ ├── ci-main.sh │ │ ├── ci-sub.sh │ │ ├── docker-services.sh │ │ ├── replace_examples_gomod.sh │ │ └── update_version.sh │ └── tag.yml ├── .gitignore ├── .gitmodules ├── .golangci.yml ├── .make_tidy.sh ├── .make_version.sh ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.MD ├── README.zh_CN.MD ├── cmd/ │ └── gf/ │ ├── LICENSE │ ├── Makefile │ ├── README.MD │ ├── README.zh_CN.MD │ ├── gfcmd/ │ │ └── gfcmd.go │ ├── go.mod │ ├── go.sum │ ├── go.work │ ├── internal/ │ │ ├── cmd/ │ │ │ ├── cmd.go │ │ │ ├── cmd_build.go │ │ │ ├── cmd_doc.go │ │ │ ├── cmd_docker.go │ │ │ ├── cmd_env.go │ │ │ ├── cmd_fix.go │ │ │ ├── cmd_gen.go │ │ │ ├── cmd_gen_ctrl.go │ │ │ ├── cmd_gen_dao.go │ │ │ ├── cmd_gen_enums.go │ │ │ ├── cmd_gen_pb.go │ │ │ ├── cmd_gen_pbentity.go │ │ │ ├── cmd_gen_service.go │ │ │ ├── cmd_init.go │ │ │ ├── cmd_install.go │ │ │ ├── cmd_pack.go │ │ │ ├── cmd_run.go │ │ │ ├── cmd_tpl.go │ │ │ ├── cmd_up.go │ │ │ ├── cmd_version.go │ │ │ ├── cmd_z_init_test.go │ │ │ ├── cmd_z_unit_build_test.go │ │ │ ├── cmd_z_unit_env_test.go │ │ │ ├── cmd_z_unit_fix_test.go │ │ │ ├── cmd_z_unit_gen_ctrl_test.go │ │ │ ├── cmd_z_unit_gen_dao_issue_test.go │ │ │ ├── cmd_z_unit_gen_dao_sharding_test.go │ │ │ ├── cmd_z_unit_gen_dao_test.go │ │ │ ├── cmd_z_unit_gen_enums_test.go │ │ │ ├── cmd_z_unit_gen_pb_test.go │ │ │ ├── cmd_z_unit_gen_pbentity_test.go │ │ │ ├── cmd_z_unit_gen_service_test.go │ │ │ ├── cmd_z_unit_pack_test.go │ │ │ ├── cmd_z_unit_run_test.go │ │ │ ├── genctrl/ │ │ │ │ ├── genctrl.go │ │ │ │ ├── genctrl_api_item.go │ │ │ │ ├── genctrl_ast_parse.go │ │ │ │ ├── genctrl_ast_parse_clear.go │ │ │ │ ├── genctrl_calculate.go │ │ │ │ ├── genctrl_generate_ctrl.go │ │ │ │ ├── genctrl_generate_ctrl_clear.go │ │ │ │ ├── genctrl_generate_interface.go │ │ │ │ └── genctrl_generate_sdk.go │ │ │ ├── gendao/ │ │ │ │ ├── gendao.go │ │ │ │ ├── gendao_clear.go │ │ │ │ ├── gendao_dao.go │ │ │ │ ├── gendao_do.go │ │ │ │ ├── gendao_entity.go │ │ │ │ ├── gendao_gen_item.go │ │ │ │ ├── gendao_structure.go │ │ │ │ ├── gendao_table.go │ │ │ │ ├── gendao_tag.go │ │ │ │ └── gendao_test.go │ │ │ ├── genenums/ │ │ │ │ ├── genenums.go │ │ │ │ ├── genenums_parser.go │ │ │ │ └── genenums_z_unit_test.go │ │ │ ├── geninit/ │ │ │ │ ├── geninit.go │ │ │ │ ├── geninit_ast.go │ │ │ │ ├── geninit_downloader.go │ │ │ │ ├── geninit_env.go │ │ │ │ ├── geninit_generator.go │ │ │ │ ├── geninit_git_downloader.go │ │ │ │ ├── geninit_selector.go │ │ │ │ ├── geninit_version.go │ │ │ │ └── geninit_z_unit_test.go │ │ │ ├── genpb/ │ │ │ │ ├── genpb.go │ │ │ │ ├── genpb_controller.go │ │ │ │ └── genpb_tag.go │ │ │ ├── genpbentity/ │ │ │ │ └── genpbentity.go │ │ │ ├── genservice/ │ │ │ │ ├── genservice.go │ │ │ │ ├── genservice_ast_parse.go │ │ │ │ ├── genservice_ast_utils.go │ │ │ │ ├── genservice_calculate.go │ │ │ │ ├── genservice_generate.go │ │ │ │ └── genservice_generate_template.go │ │ │ └── testdata/ │ │ │ ├── build/ │ │ │ │ ├── multiple/ │ │ │ │ │ └── multiple.go │ │ │ │ ├── single/ │ │ │ │ │ └── main.go │ │ │ │ └── varmap/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── main.go │ │ │ ├── fix/ │ │ │ │ └── fix25_content.go │ │ │ ├── genctrl/ │ │ │ │ ├── default/ │ │ │ │ │ ├── api/ │ │ │ │ │ │ └── article/ │ │ │ │ │ │ ├── article_expect.go │ │ │ │ │ │ ├── v1/ │ │ │ │ │ │ │ ├── edit.go │ │ │ │ │ │ │ └── get.go │ │ │ │ │ │ └── v2/ │ │ │ │ │ │ └── edit.go │ │ │ │ │ └── controller/ │ │ │ │ │ └── article/ │ │ │ │ │ ├── article.go │ │ │ │ │ ├── article_new.go │ │ │ │ │ ├── article_v1_create.go │ │ │ │ │ ├── article_v1_get_list.go │ │ │ │ │ ├── article_v1_get_one.go │ │ │ │ │ ├── article_v1_update.go │ │ │ │ │ ├── article_v2_create.go │ │ │ │ │ └── article_v2_update.go │ │ │ │ ├── merge/ │ │ │ │ │ ├── add_new_ctrl/ │ │ │ │ │ │ ├── api/ │ │ │ │ │ │ │ └── dict/ │ │ │ │ │ │ │ ├── dict_add_new_ctrl_expect.gotest │ │ │ │ │ │ │ ├── dict_expect.go │ │ │ │ │ │ │ └── v1/ │ │ │ │ │ │ │ └── dict_type.go │ │ │ │ │ │ └── controller/ │ │ │ │ │ │ └── dict/ │ │ │ │ │ │ ├── dict.go │ │ │ │ │ │ ├── dict_new.go │ │ │ │ │ │ ├── dict_v1_dict_type.go │ │ │ │ │ │ └── dict_v1_test_new.gotest │ │ │ │ │ └── add_new_file/ │ │ │ │ │ ├── api/ │ │ │ │ │ │ └── dict/ │ │ │ │ │ │ ├── dict_add_new_ctrl_expect.gotest │ │ │ │ │ │ ├── dict_expect.go │ │ │ │ │ │ └── v1/ │ │ │ │ │ │ └── dict_type.go │ │ │ │ │ └── controller/ │ │ │ │ │ └── dict/ │ │ │ │ │ ├── dict.go │ │ │ │ │ ├── dict_new.go │ │ │ │ │ ├── dict_v1_dict_type.go │ │ │ │ │ └── dict_v1_test_new.gotest │ │ │ │ └── multi/ │ │ │ │ ├── api/ │ │ │ │ │ ├── admin/ │ │ │ │ │ │ ├── article/ │ │ │ │ │ │ │ ├── article_expect.go │ │ │ │ │ │ │ └── v1/ │ │ │ │ │ │ │ └── edit.go │ │ │ │ │ │ └── user/ │ │ │ │ │ │ ├── user_expect.go │ │ │ │ │ │ └── v1/ │ │ │ │ │ │ └── edit.go │ │ │ │ │ └── app/ │ │ │ │ │ └── user/ │ │ │ │ │ ├── user_expect.go │ │ │ │ │ ├── user_ext/ │ │ │ │ │ │ ├── user_ext_expect.go │ │ │ │ │ │ └── v1/ │ │ │ │ │ │ └── edit.go │ │ │ │ │ └── v1/ │ │ │ │ │ └── edit.go │ │ │ │ └── controller/ │ │ │ │ ├── admin/ │ │ │ │ │ ├── article/ │ │ │ │ │ │ ├── article.go │ │ │ │ │ │ ├── article_new.go │ │ │ │ │ │ └── article_v1_create.go │ │ │ │ │ └── user/ │ │ │ │ │ ├── user.go │ │ │ │ │ ├── user_new.go │ │ │ │ │ └── user_v1_create.go │ │ │ │ └── app/ │ │ │ │ └── user/ │ │ │ │ ├── user.go │ │ │ │ ├── user_ext/ │ │ │ │ │ ├── user_ext.go │ │ │ │ │ ├── user_ext_new.go │ │ │ │ │ ├── user_ext_v1_create.go │ │ │ │ │ └── user_ext_v1_update.go │ │ │ │ ├── user_new.go │ │ │ │ ├── user_v1_create.go │ │ │ │ └── user_v1_update.go │ │ │ ├── gendao/ │ │ │ │ ├── generated_user/ │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── model/ │ │ │ │ │ ├── do/ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── entity/ │ │ │ │ │ └── table_user.go │ │ │ │ ├── generated_user_field_mapping/ │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── model/ │ │ │ │ │ ├── do/ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── entity/ │ │ │ │ │ └── table_user.go │ │ │ │ ├── generated_user_sqlite3/ │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── model/ │ │ │ │ │ ├── do/ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── entity/ │ │ │ │ │ └── table_user.go │ │ │ │ ├── generated_user_type_mapping/ │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── model/ │ │ │ │ │ ├── do/ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── entity/ │ │ │ │ │ └── table_user.go │ │ │ │ ├── go.mod.txt │ │ │ │ ├── sharding/ │ │ │ │ │ ├── sharding.sql │ │ │ │ │ └── sharding_overlapping.sql │ │ │ │ ├── sqlite3/ │ │ │ │ │ └── user.sqlite3.sql │ │ │ │ ├── tables_pattern.sql │ │ │ │ └── user.tpl.sql │ │ │ ├── genpb/ │ │ │ │ ├── multiple_tags.proto │ │ │ │ └── nested_message.proto │ │ │ ├── genpbentity/ │ │ │ │ ├── generated/ │ │ │ │ │ ├── table_user.proto │ │ │ │ │ └── table_user_snake_screaming.proto │ │ │ │ └── user.tpl.sql │ │ │ ├── genservice/ │ │ │ │ ├── logic/ │ │ │ │ │ ├── article/ │ │ │ │ │ │ ├── article.go │ │ │ │ │ │ └── article_extra.go │ │ │ │ │ ├── base/ │ │ │ │ │ │ ├── base.go │ │ │ │ │ │ ├── base_destory.go │ │ │ │ │ │ └── sub/ │ │ │ │ │ │ └── sub.go │ │ │ │ │ ├── delivery/ │ │ │ │ │ │ ├── delivery_app.go │ │ │ │ │ │ └── delivery_cluster.go │ │ │ │ │ ├── logic_expect.go │ │ │ │ │ └── user/ │ │ │ │ │ ├── supper_vip_user.go │ │ │ │ │ ├── user.go │ │ │ │ │ └── vip_user.go │ │ │ │ └── service/ │ │ │ │ ├── article.go │ │ │ │ ├── base.go │ │ │ │ ├── delivery.go │ │ │ │ └── user.go │ │ │ └── issue/ │ │ │ ├── 2572/ │ │ │ │ ├── config.yaml │ │ │ │ ├── dao/ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── user_3.go │ │ │ │ │ │ └── user_4.go │ │ │ │ │ ├── user_3.go │ │ │ │ │ └── user_4.go │ │ │ │ ├── model/ │ │ │ │ │ ├── do/ │ │ │ │ │ │ ├── user_3.go │ │ │ │ │ │ └── user_4.go │ │ │ │ │ └── entity/ │ │ │ │ │ ├── user_3.go │ │ │ │ │ └── user_4.go │ │ │ │ ├── sql1.sql │ │ │ │ └── sql2.sql │ │ │ ├── 2616/ │ │ │ │ ├── config.yaml │ │ │ │ ├── dao/ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── user_1.go │ │ │ │ │ │ ├── user_2.go │ │ │ │ │ │ ├── user_3.go │ │ │ │ │ │ └── user_4.go │ │ │ │ │ ├── user_1.go │ │ │ │ │ ├── user_2.go │ │ │ │ │ ├── user_3.go │ │ │ │ │ └── user_4.go │ │ │ │ ├── model/ │ │ │ │ │ ├── do/ │ │ │ │ │ │ ├── user_3.go │ │ │ │ │ │ └── user_4.go │ │ │ │ │ └── entity/ │ │ │ │ │ ├── user_3.go │ │ │ │ │ └── user_4.go │ │ │ │ ├── sql1.sql │ │ │ │ └── sql2.sql │ │ │ ├── 2746/ │ │ │ │ ├── issue_2746.go │ │ │ │ └── sql.sql │ │ │ ├── 3328/ │ │ │ │ └── logic/ │ │ │ │ └── .gitkeep │ │ │ ├── 3459/ │ │ │ │ └── config.yaml │ │ │ ├── 3460/ │ │ │ │ ├── api/ │ │ │ │ │ └── hello/ │ │ │ │ │ ├── hello.go │ │ │ │ │ ├── v1/ │ │ │ │ │ │ └── req.go │ │ │ │ │ └── v2/ │ │ │ │ │ └── req.go │ │ │ │ └── controller/ │ │ │ │ └── hello/ │ │ │ │ ├── hello.go │ │ │ │ ├── hello_new.go │ │ │ │ ├── hello_v1_req.go │ │ │ │ └── hello_v2_req.go │ │ │ ├── 3545/ │ │ │ │ └── table_user.proto │ │ │ ├── 3685/ │ │ │ │ ├── table_user.proto │ │ │ │ └── user.tpl.sql │ │ │ ├── 3749/ │ │ │ │ ├── dao/ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── table_user.go │ │ │ │ ├── model/ │ │ │ │ │ ├── do/ │ │ │ │ │ │ └── table_user.go │ │ │ │ │ └── entity/ │ │ │ │ │ └── table_user.go │ │ │ │ └── user.tpl.sql │ │ │ ├── 3835/ │ │ │ │ ├── logic/ │ │ │ │ │ ├── issue3835/ │ │ │ │ │ │ └── issue3835.go │ │ │ │ │ └── logic.go │ │ │ │ └── service/ │ │ │ │ └── issue_3835.go │ │ │ ├── 3882/ │ │ │ │ └── issue3882.proto │ │ │ ├── 3953/ │ │ │ │ └── issue3953.proto │ │ │ ├── 4242/ │ │ │ │ ├── logic/ │ │ │ │ │ ├── issue4242/ │ │ │ │ │ │ └── issue4242.go │ │ │ │ │ ├── issue4242alias/ │ │ │ │ │ │ └── issue4242alias.go │ │ │ │ │ └── logic.go │ │ │ │ └── service/ │ │ │ │ ├── issue_4242.go │ │ │ │ └── issue_4242_alias.go │ │ │ ├── 4330/ │ │ │ │ ├── issue4330_double.proto │ │ │ │ └── issue4330_string.proto │ │ │ └── 4387/ │ │ │ ├── api/ │ │ │ │ └── types.go │ │ │ ├── go.mod │ │ │ └── go.sum │ │ ├── consts/ │ │ │ ├── consts.go │ │ │ ├── consts_gen_ctrl_template.go │ │ │ ├── consts_gen_ctrl_template_sdk.go │ │ │ ├── consts_gen_dao_template_dao.go │ │ │ ├── consts_gen_dao_template_do.go │ │ │ ├── consts_gen_dao_template_entity.go │ │ │ ├── consts_gen_dao_template_table.go │ │ │ ├── consts_gen_enums_template.go │ │ │ ├── consts_gen_pbentity_template.go │ │ │ ├── consts_gen_service_template.go │ │ │ └── consts_gen_service_template_logic.go │ │ ├── packed/ │ │ │ ├── packed.go │ │ │ ├── template-mono-app.go │ │ │ ├── template-mono.go │ │ │ └── template-single.go │ │ ├── service/ │ │ │ └── install.go │ │ └── utility/ │ │ ├── allyes/ │ │ │ └── allyes.go │ │ ├── mlog/ │ │ │ └── mlog.go │ │ └── utils/ │ │ ├── utils.go │ │ ├── utils_http_download.go │ │ └── utils_test.go │ ├── main.go │ └── test/ │ └── testdata/ │ ├── tpls/ │ │ ├── tpl1.yaml │ │ └── tpl2.sql │ └── values.json ├── container/ │ ├── garray/ │ │ ├── garray.go │ │ ├── garray_func.go │ │ ├── garray_normal_any.go │ │ ├── garray_normal_int.go │ │ ├── garray_normal_str.go │ │ ├── garray_normal_t.go │ │ ├── garray_sorted_any.go │ │ ├── garray_sorted_int.go │ │ ├── garray_sorted_str.go │ │ ├── garray_sorted_t.go │ │ ├── garray_z_bench_any_test.go │ │ ├── garray_z_example_normal_any_test.go │ │ ├── garray_z_example_normal_int_test.go │ │ ├── garray_z_example_normal_str_test.go │ │ ├── garray_z_example_normal_t_test.go │ │ ├── garray_z_example_sorted_str_test.go │ │ ├── garray_z_example_sorted_t_test.go │ │ ├── garray_z_unit_all_basic_test.go │ │ ├── garray_z_unit_normal_any_test.go │ │ ├── garray_z_unit_normal_int_test.go │ │ ├── garray_z_unit_normal_str_test.go │ │ ├── garray_z_unit_normal_t_test.go │ │ ├── garray_z_unit_sorted_any_test.go │ │ ├── garray_z_unit_sorted_int_test.go │ │ ├── garray_z_unit_sorted_str_test.go │ │ └── garray_z_unit_sorted_t_test.go │ ├── glist/ │ │ ├── glist.go │ │ ├── glist_t.go │ │ ├── glist_z_bench_t_test.go │ │ ├── glist_z_bench_test.go │ │ ├── glist_z_example_t_test.go │ │ ├── glist_z_example_test.go │ │ ├── glist_z_unit_t_test.go │ │ └── glist_z_unit_test.go │ ├── gmap/ │ │ ├── gmap.go │ │ ├── gmap_hash_any_any_map.go │ │ ├── gmap_hash_int_any_map.go │ │ ├── gmap_hash_int_int_map.go │ │ ├── gmap_hash_int_str_map.go │ │ ├── gmap_hash_k_v_map.go │ │ ├── gmap_hash_str_any_map.go │ │ ├── gmap_hash_str_int_map.go │ │ ├── gmap_hash_str_str_map.go │ │ ├── gmap_list_k_v_map.go │ │ ├── gmap_list_map.go │ │ ├── gmap_tree_k_v_map.go │ │ ├── gmap_tree_map.go │ │ ├── gmap_z_basic_test.go │ │ ├── gmap_z_bench_maps_test.go │ │ ├── gmap_z_bench_safe_test.go │ │ ├── gmap_z_bench_syncmap_test.go │ │ ├── gmap_z_bench_unsafe_test.go │ │ ├── gmap_z_example_any_any_test.go │ │ ├── gmap_z_example_int_any_test.go │ │ ├── gmap_z_example_int_int_test.go │ │ ├── gmap_z_example_list_test.go │ │ ├── gmap_z_example_str_any_test.go │ │ ├── gmap_z_example_str_int_test.go │ │ ├── gmap_z_example_str_str_test.go │ │ ├── gmap_z_example_test.go │ │ ├── gmap_z_unit_hash_any_any_test.go │ │ ├── gmap_z_unit_hash_int_any_test.go │ │ ├── gmap_z_unit_hash_int_int_test.go │ │ ├── gmap_z_unit_hash_int_str_test.go │ │ ├── gmap_z_unit_hash_str_any_test.go │ │ ├── gmap_z_unit_hash_str_int_test.go │ │ ├── gmap_z_unit_hash_str_str_test.go │ │ ├── gmap_z_unit_k_v_map_test.go │ │ ├── gmap_z_unit_list_k_v_map_race_test.go │ │ ├── gmap_z_unit_list_k_v_map_test.go │ │ ├── gmap_z_unit_list_map_test.go │ │ └── gmap_z_unit_tree_map_test.go │ ├── gpool/ │ │ ├── gpool.go │ │ ├── gpool_bench_test.go │ │ ├── gpool_t.go │ │ ├── gpool_z_example_test.go │ │ ├── gpool_z_unit_generic_test.go │ │ └── gpool_z_unit_test.go │ ├── gqueue/ │ │ ├── gqueue.go │ │ ├── gqueue_t.go │ │ ├── gqueue_z_bench_test.go │ │ ├── gqueue_z_example_test.go │ │ └── gqueue_z_unit_test.go │ ├── gring/ │ │ ├── gring.go │ │ ├── gring_t.go │ │ ├── gring_z_bench_test.go │ │ ├── gring_z_example_test.go │ │ └── gring_z_unit_test.go │ ├── gset/ │ │ ├── gset_any_set.go │ │ ├── gset_int_set.go │ │ ├── gset_str_set.go │ │ ├── gset_t_set.go │ │ ├── gset_z_bench_test.go │ │ ├── gset_z_example_any_test.go │ │ ├── gset_z_example_int_test.go │ │ ├── gset_z_example_str_test.go │ │ ├── gset_z_unit_any_test.go │ │ ├── gset_z_unit_int_test.go │ │ ├── gset_z_unit_str_test.go │ │ └── gset_z_unit_t_set_test.go │ ├── gtree/ │ │ ├── gtree.go │ │ ├── gtree_avltree.go │ │ ├── gtree_btree.go │ │ ├── gtree_k_v_avltree.go │ │ ├── gtree_k_v_btree.go │ │ ├── gtree_k_v_redblacktree.go │ │ ├── gtree_redblacktree.go │ │ ├── gtree_z_avl_tree_test.go │ │ ├── gtree_z_b_tree_test.go │ │ ├── gtree_z_example_avltree_test.go │ │ ├── gtree_z_example_btree_test.go │ │ ├── gtree_z_example_redblacktree_test.go │ │ ├── gtree_z_example_test.go │ │ ├── gtree_z_k_v_tree_test.go │ │ └── gtree_z_redblack_tree_test.go │ ├── gtype/ │ │ ├── gtype.go │ │ ├── gtype_any.go │ │ ├── gtype_bool.go │ │ ├── gtype_byte.go │ │ ├── gtype_bytes.go │ │ ├── gtype_float32.go │ │ ├── gtype_float64.go │ │ ├── gtype_int.go │ │ ├── gtype_int32.go │ │ ├── gtype_int64.go │ │ ├── gtype_interface.go │ │ ├── gtype_string.go │ │ ├── gtype_uint.go │ │ ├── gtype_uint32.go │ │ ├── gtype_uint64.go │ │ ├── gtype_z_bench_basic_test.go │ │ ├── gtype_z_bench_json_test.go │ │ ├── gtype_z_unit_any_test.go │ │ ├── gtype_z_unit_bool_test.go │ │ ├── gtype_z_unit_byte_test.go │ │ ├── gtype_z_unit_bytes_test.go │ │ ├── gtype_z_unit_float32_test.go │ │ ├── gtype_z_unit_float64_test.go │ │ ├── gtype_z_unit_int32_test.go │ │ ├── gtype_z_unit_int64_test.go │ │ ├── gtype_z_unit_int_test.go │ │ ├── gtype_z_unit_interface_test.go │ │ ├── gtype_z_unit_string_test.go │ │ ├── gtype_z_unit_uint32_test.go │ │ ├── gtype_z_unit_uint64_test.go │ │ └── gtype_z_unit_uint_test.go │ └── gvar/ │ ├── gvar.go │ ├── gvar_basic.go │ ├── gvar_copy.go │ ├── gvar_is.go │ ├── gvar_list.go │ ├── gvar_map.go │ ├── gvar_scan.go │ ├── gvar_set.go │ ├── gvar_slice.go │ ├── gvar_struct.go │ ├── gvar_time.go │ ├── gvar_vars.go │ ├── gvar_z_bench_ptr_test.go │ ├── gvar_z_example_test.go │ ├── gvar_z_unit_basic_test.go │ ├── gvar_z_unit_is_test.go │ ├── gvar_z_unit_json_test.go │ ├── gvar_z_unit_list_test.go │ ├── gvar_z_unit_map_test.go │ ├── gvar_z_unit_slice_test.go │ ├── gvar_z_unit_struct_test.go │ └── gvar_z_unit_vars_test.go ├── contrib/ │ ├── config/ │ │ ├── README.MD │ │ ├── apollo/ │ │ │ ├── README.MD │ │ │ ├── apollo.go │ │ │ ├── apollo_adapter_ctx.go │ │ │ ├── apollo_test.go │ │ │ ├── go.mod │ │ │ └── go.sum │ │ ├── consul/ │ │ │ ├── README.md │ │ │ ├── consul.go │ │ │ ├── consul_adapter_ctx.go │ │ │ ├── consul_test.go │ │ │ ├── go.mod │ │ │ └── go.sum │ │ ├── kubecm/ │ │ │ ├── README.MD │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── kubecm.go │ │ │ ├── kubecm_adapter_ctx.go │ │ │ ├── kubecm_kube.go │ │ │ ├── kubecm_test.go │ │ │ └── testdata/ │ │ │ └── configmap.yaml │ │ ├── nacos/ │ │ │ ├── README.MD │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── nacos.go │ │ │ ├── nacos_adapter_ctx.go │ │ │ └── nacos_test.go │ │ └── polaris/ │ │ ├── README.MD │ │ ├── go.mod │ │ ├── go.sum │ │ ├── polaris.go │ │ └── polaris_adapter_ctx.go │ ├── drivers/ │ │ ├── README.MD │ │ ├── clickhouse/ │ │ │ ├── clickhouse.go │ │ │ ├── clickhouse_convert.go │ │ │ ├── clickhouse_do_commit.go │ │ │ ├── clickhouse_do_delete.go │ │ │ ├── clickhouse_do_filter.go │ │ │ ├── clickhouse_do_insert.go │ │ │ ├── clickhouse_do_update.go │ │ │ ├── clickhouse_insert.go │ │ │ ├── clickhouse_open.go │ │ │ ├── clickhouse_ping.go │ │ │ ├── clickhouse_table_fields.go │ │ │ ├── clickhouse_tables.go │ │ │ ├── clickhouse_transaction.go │ │ │ ├── clickhouse_z_unit_db_test.go │ │ │ ├── clickhouse_z_unit_init_test.go │ │ │ ├── clickhouse_z_unit_issue_test.go │ │ │ ├── clickhouse_z_unit_model_test.go │ │ │ ├── clickhouse_z_unit_test.go │ │ │ ├── go.mod │ │ │ └── go.sum │ │ ├── dm/ │ │ │ ├── dm.go │ │ │ ├── dm_convert.go │ │ │ ├── dm_do_filter.go │ │ │ ├── dm_do_insert.go │ │ │ ├── dm_do_query.go │ │ │ ├── dm_open.go │ │ │ ├── dm_table_fields.go │ │ │ ├── dm_tables.go │ │ │ ├── dm_z_unit_basic_test.go │ │ │ ├── dm_z_unit_feature_soft_time_test.go │ │ │ ├── dm_z_unit_init_test.go │ │ │ ├── dm_z_unit_issue_test.go │ │ │ ├── dm_z_unit_model_test.go │ │ │ ├── dm_z_unit_pr_test.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── testdata/ │ │ │ └── issue/ │ │ │ └── 2594/ │ │ │ └── sql.sql │ │ ├── gaussdb/ │ │ │ ├── gaussdb.go │ │ │ ├── gaussdb_convert.go │ │ │ ├── gaussdb_do_exec.go │ │ │ ├── gaussdb_do_filter.go │ │ │ ├── gaussdb_do_insert.go │ │ │ ├── gaussdb_open.go │ │ │ ├── gaussdb_order.go │ │ │ ├── gaussdb_result.go │ │ │ ├── gaussdb_table_fields.go │ │ │ ├── gaussdb_tables.go │ │ │ ├── gaussdb_z_unit_db_test.go │ │ │ ├── gaussdb_z_unit_feature_ctx_test.go │ │ │ ├── gaussdb_z_unit_feature_hook_test.go │ │ │ ├── gaussdb_z_unit_feature_model_builder_test.go │ │ │ ├── gaussdb_z_unit_feature_model_do_test.go │ │ │ ├── gaussdb_z_unit_feature_model_join_test.go │ │ │ ├── gaussdb_z_unit_feature_model_struct_test.go │ │ │ ├── gaussdb_z_unit_feature_model_subquery_test.go │ │ │ ├── gaussdb_z_unit_feature_scanlist_test.go │ │ │ ├── gaussdb_z_unit_feature_soft_time_test.go │ │ │ ├── gaussdb_z_unit_feature_union_test.go │ │ │ ├── gaussdb_z_unit_feature_with_test.go │ │ │ ├── gaussdb_z_unit_field_test.go │ │ │ ├── gaussdb_z_unit_filter_test.go │ │ │ ├── gaussdb_z_unit_init_test.go │ │ │ ├── gaussdb_z_unit_model_test.go │ │ │ ├── gaussdb_z_unit_model_where_test.go │ │ │ ├── gaussdb_z_unit_open_test.go │ │ │ ├── gaussdb_z_unit_raw_test.go │ │ │ ├── gaussdb_z_unit_test.go │ │ │ ├── gaussdb_z_unit_transaction_test.go │ │ │ ├── gaussdb_z_unit_upsert_test.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── testdata/ │ │ │ ├── table_with_prefix.sql │ │ │ ├── with_multiple_depends.sql │ │ │ ├── with_tpl_user.sql │ │ │ ├── with_tpl_user_detail.sql │ │ │ └── with_tpl_user_scores.sql │ │ ├── mariadb/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── mariadb.go │ │ │ ├── mariadb_table_fields.go │ │ │ ├── mariadb_unit_init_test.go │ │ │ ├── mariadb_unit_model_test.go │ │ │ ├── mariadb_z_unit_feature_batch_test.go │ │ │ ├── mariadb_z_unit_feature_cache_test.go │ │ │ ├── mariadb_z_unit_feature_concurrent_test.go │ │ │ ├── mariadb_z_unit_feature_ctx_test.go │ │ │ ├── mariadb_z_unit_feature_error_handling_test.go │ │ │ ├── mariadb_z_unit_feature_hook_test.go │ │ │ ├── mariadb_z_unit_feature_model_builder_test.go │ │ │ ├── mariadb_z_unit_feature_model_do_test.go │ │ │ ├── mariadb_z_unit_feature_model_join_test.go │ │ │ ├── mariadb_z_unit_feature_model_sharding_test.go │ │ │ ├── mariadb_z_unit_feature_model_struct_test.go │ │ │ ├── mariadb_z_unit_feature_model_subquery_test.go │ │ │ ├── mariadb_z_unit_feature_omit_test.go │ │ │ ├── mariadb_z_unit_feature_pagination_test.go │ │ │ ├── mariadb_z_unit_feature_raw_type_test.go │ │ │ ├── mariadb_z_unit_feature_scanlist_test.go │ │ │ ├── mariadb_z_unit_feature_soft_time_test.go │ │ │ ├── mariadb_z_unit_feature_union_test.go │ │ │ ├── mariadb_z_unit_feature_with_test.go │ │ │ ├── mariadb_z_unit_model_where_test.go │ │ │ ├── mariadb_z_unit_transaction_test.go │ │ │ └── testdata/ │ │ │ ├── fix_gdb_join.sql │ │ │ ├── fix_gdb_join_expect.sql │ │ │ ├── table_with_prefix.sql │ │ │ ├── with_multiple_depends.sql │ │ │ ├── with_tpl_user.sql │ │ │ ├── with_tpl_user_detail.sql │ │ │ └── with_tpl_user_scores.sql │ │ ├── mssql/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── mssql.go │ │ │ ├── mssql_do_commit.go │ │ │ ├── mssql_do_exec.go │ │ │ ├── mssql_do_filter.go │ │ │ ├── mssql_do_filter_test.go │ │ │ ├── mssql_do_insert.go │ │ │ ├── mssql_open.go │ │ │ ├── mssql_result.go │ │ │ ├── mssql_table_fields.go │ │ │ ├── mssql_tables.go │ │ │ ├── mssql_z_unit_basic_test.go │ │ │ ├── mssql_z_unit_init_test.go │ │ │ ├── mssql_z_unit_model_test.go │ │ │ └── mssql_z_unit_transaction_test.go │ │ ├── mysql/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── mysql.go │ │ │ ├── mysql_do_filter.go │ │ │ ├── mysql_open.go │ │ │ ├── mysql_table_fields.go │ │ │ ├── mysql_tables.go │ │ │ ├── mysql_z_unit_basic_test.go │ │ │ ├── mysql_z_unit_core_bench_test.go │ │ │ ├── mysql_z_unit_core_test.go │ │ │ ├── mysql_z_unit_feature_batch_test.go │ │ │ ├── mysql_z_unit_feature_cache_test.go │ │ │ ├── mysql_z_unit_feature_concurrent_test.go │ │ │ ├── mysql_z_unit_feature_ctx_test.go │ │ │ ├── mysql_z_unit_feature_duplicate_test.go │ │ │ ├── mysql_z_unit_feature_error_handling_test.go │ │ │ ├── mysql_z_unit_feature_hook_test.go │ │ │ ├── mysql_z_unit_feature_json_test.go │ │ │ ├── mysql_z_unit_feature_lock_test.go │ │ │ ├── mysql_z_unit_feature_master_slave_test.go │ │ │ ├── mysql_z_unit_feature_metadata_test.go │ │ │ ├── mysql_z_unit_feature_model_builder_test.go │ │ │ ├── mysql_z_unit_feature_model_do_test.go │ │ │ ├── mysql_z_unit_feature_model_join_test.go │ │ │ ├── mysql_z_unit_feature_model_sharding_test.go │ │ │ ├── mysql_z_unit_feature_model_struct_test.go │ │ │ ├── mysql_z_unit_feature_model_subquery_test.go │ │ │ ├── mysql_z_unit_feature_omit_test.go │ │ │ ├── mysql_z_unit_feature_pagination_test.go │ │ │ ├── mysql_z_unit_feature_partition_test.go │ │ │ ├── mysql_z_unit_feature_raw_type_test.go │ │ │ ├── mysql_z_unit_feature_scanlist_test.go │ │ │ ├── mysql_z_unit_feature_soft_time_test.go │ │ │ ├── mysql_z_unit_feature_union_test.go │ │ │ ├── mysql_z_unit_feature_with_test.go │ │ │ ├── mysql_z_unit_init_test.go │ │ │ ├── mysql_z_unit_internal_test.go │ │ │ ├── mysql_z_unit_issue_test.go │ │ │ ├── mysql_z_unit_model_test.go │ │ │ ├── mysql_z_unit_model_where_test.go │ │ │ ├── mysql_z_unit_transaction_test.go │ │ │ └── testdata/ │ │ │ ├── date_time_example.sql │ │ │ ├── fix_gdb_join.sql │ │ │ ├── fix_gdb_join_expect.sql │ │ │ ├── fix_gdb_order_by.sql │ │ │ ├── issues/ │ │ │ │ ├── 1380.sql │ │ │ │ ├── 1401.sql │ │ │ │ ├── 1412.sql │ │ │ │ ├── 2105.sql │ │ │ │ ├── 2119.sql │ │ │ │ ├── 2439.sql │ │ │ │ ├── 2643.sql │ │ │ │ ├── 3086.sql │ │ │ │ ├── 3218.sql │ │ │ │ ├── 3626.sql │ │ │ │ ├── 3754.sql │ │ │ │ ├── 3915.sql │ │ │ │ ├── 4034.sql │ │ │ │ └── 4086.sql │ │ │ ├── reservedwords_table_tpl.sql │ │ │ ├── table_with_prefix.sql │ │ │ ├── with_multiple_depends.sql │ │ │ ├── with_tpl_user.sql │ │ │ ├── with_tpl_user_detail.sql │ │ │ └── with_tpl_user_scores.sql │ │ ├── oceanbase/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── oceanbase.go │ │ ├── oracle/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── oracle.go │ │ │ ├── oracle_do_commit.go │ │ │ ├── oracle_do_exec.go │ │ │ ├── oracle_do_filter.go │ │ │ ├── oracle_do_insert.go │ │ │ ├── oracle_open.go │ │ │ ├── oracle_order.go │ │ │ ├── oracle_result.go │ │ │ ├── oracle_table_fields.go │ │ │ ├── oracle_tables.go │ │ │ ├── oracle_z_unit_basic_test.go │ │ │ ├── oracle_z_unit_init_test.go │ │ │ └── oracle_z_unit_model_test.go │ │ ├── pgsql/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── pgsql.go │ │ │ ├── pgsql_convert.go │ │ │ ├── pgsql_do_exec.go │ │ │ ├── pgsql_do_filter.go │ │ │ ├── pgsql_do_insert.go │ │ │ ├── pgsql_format_upsert.go │ │ │ ├── pgsql_open.go │ │ │ ├── pgsql_order.go │ │ │ ├── pgsql_result.go │ │ │ ├── pgsql_table_fields.go │ │ │ ├── pgsql_tables.go │ │ │ ├── pgsql_z_unit_convert_test.go │ │ │ ├── pgsql_z_unit_db_test.go │ │ │ ├── pgsql_z_unit_feature_ctx_test.go │ │ │ ├── pgsql_z_unit_feature_hook_test.go │ │ │ ├── pgsql_z_unit_feature_model_builder_test.go │ │ │ ├── pgsql_z_unit_feature_model_do_test.go │ │ │ ├── pgsql_z_unit_feature_model_join_test.go │ │ │ ├── pgsql_z_unit_feature_model_struct_test.go │ │ │ ├── pgsql_z_unit_feature_model_subquery_test.go │ │ │ ├── pgsql_z_unit_feature_scanlist_test.go │ │ │ ├── pgsql_z_unit_feature_soft_time_test.go │ │ │ ├── pgsql_z_unit_feature_union_test.go │ │ │ ├── pgsql_z_unit_feature_with_test.go │ │ │ ├── pgsql_z_unit_field_test.go │ │ │ ├── pgsql_z_unit_filter_test.go │ │ │ ├── pgsql_z_unit_init_test.go │ │ │ ├── pgsql_z_unit_issue_test.go │ │ │ ├── pgsql_z_unit_model_test.go │ │ │ ├── pgsql_z_unit_model_where_test.go │ │ │ ├── pgsql_z_unit_open_test.go │ │ │ ├── pgsql_z_unit_raw_test.go │ │ │ ├── pgsql_z_unit_test.go │ │ │ ├── pgsql_z_unit_transaction_test.go │ │ │ ├── pgsql_z_unit_upsert_test.go │ │ │ └── testdata/ │ │ │ ├── issues/ │ │ │ │ ├── issue3632.sql │ │ │ │ ├── issue3668.sql │ │ │ │ ├── issue3671.sql │ │ │ │ └── issue4033.sql │ │ │ ├── table_with_prefix.sql │ │ │ ├── with_multiple_depends.sql │ │ │ ├── with_tpl_user.sql │ │ │ ├── with_tpl_user_detail.sql │ │ │ └── with_tpl_user_scores.sql │ │ ├── sqlite/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── sqlite.go │ │ │ ├── sqlite_do_filter.go │ │ │ ├── sqlite_format_upsert.go │ │ │ ├── sqlite_open.go │ │ │ ├── sqlite_order.go │ │ │ ├── sqlite_table_fields.go │ │ │ ├── sqlite_tables.go │ │ │ ├── sqlite_z_unit_core_test.go │ │ │ ├── sqlite_z_unit_init_test.go │ │ │ └── sqlite_z_unit_model_test.go │ │ ├── sqlitecgo/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── sqlitecgo.go │ │ │ ├── sqlitecgo_do_filter.go │ │ │ ├── sqlitecgo_format_upsert.go │ │ │ ├── sqlitecgo_open.go │ │ │ ├── sqlitecgo_table_fields.go │ │ │ ├── sqlitecgo_tables.go │ │ │ ├── sqlitecgo_z_unit_core_test.go │ │ │ ├── sqlitecgo_z_unit_init_test.go │ │ │ └── sqlitecgo_z_unit_model_test.go │ │ └── tidb/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── tidb.go │ ├── metric/ │ │ └── otelmetric/ │ │ ├── README.MD │ │ ├── go.mod │ │ ├── go.sum │ │ ├── otelmetric.go │ │ ├── otelmetric_callback.go │ │ ├── otelmetric_meter_counter_performer.go │ │ ├── otelmetric_meter_histogram_performer.go │ │ ├── otelmetric_meter_observable_counter_performer.go │ │ ├── otelmetric_meter_observable_gauge_performer.go │ │ ├── otelmetric_meter_observable_updown_counter_performer.go │ │ ├── otelmetric_meter_performer.go │ │ ├── otelmetric_meter_updown_counter_performer.go │ │ ├── otelmetric_metric_callback.go │ │ ├── otelmetric_option.go │ │ ├── otelmetric_prometheus.go │ │ ├── otelmetric_provider.go │ │ ├── otelmetric_util.go │ │ ├── otelmetric_z_unit_http_test.go │ │ ├── otelmetric_z_unit_test.go │ │ └── testdata/ │ │ └── http.prometheus.metrics.txt │ ├── nosql/ │ │ └── redis/ │ │ ├── README.MD │ │ ├── go.mod │ │ ├── go.sum │ │ ├── redis.go │ │ ├── redis_conn.go │ │ ├── redis_func.go │ │ ├── redis_group_generic.go │ │ ├── redis_group_hash.go │ │ ├── redis_group_list.go │ │ ├── redis_group_pubsub.go │ │ ├── redis_group_script.go │ │ ├── redis_group_set.go │ │ ├── redis_group_sorted_set.go │ │ ├── redis_group_string.go │ │ ├── redis_operation.go │ │ ├── redis_test.go │ │ ├── redis_z_func_test.go │ │ ├── redis_z_group_generic_test.go │ │ ├── redis_z_group_hash_test.go │ │ ├── redis_z_group_list_test.go │ │ ├── redis_z_group_pubsub_test.go │ │ ├── redis_z_group_script_test.go │ │ ├── redis_z_group_set_test.go │ │ ├── redis_z_group_sorted_set_test.go │ │ ├── redis_z_group_string_test.go │ │ ├── redis_z_unit_config_test.go │ │ ├── redis_z_unit_conn_sentinel_test.go │ │ ├── redis_z_unit_conn_test.go │ │ ├── redis_z_unit_gcache_adapter_test.go │ │ ├── redis_z_unit_gins_redis_test.go │ │ ├── redis_z_unit_test.go │ │ └── testdata/ │ │ └── redis/ │ │ └── config.toml │ ├── registry/ │ │ ├── README.MD │ │ ├── consul/ │ │ │ ├── README.MD │ │ │ ├── consul.go │ │ │ ├── consul_discovery.go │ │ │ ├── consul_test.go │ │ │ ├── consul_watcher.go │ │ │ ├── go.mod │ │ │ └── go.sum │ │ ├── etcd/ │ │ │ ├── README.MD │ │ │ ├── etcd.go │ │ │ ├── etcd_discovery.go │ │ │ ├── etcd_registrar.go │ │ │ ├── etcd_service.go │ │ │ ├── etcd_watcher.go │ │ │ ├── etcd_z_test.go │ │ │ ├── go.mod │ │ │ └── go.sum │ │ ├── file/ │ │ │ ├── README.MD │ │ │ ├── file.go │ │ │ ├── file_discovery.go │ │ │ ├── file_registrar.go │ │ │ ├── file_service.go │ │ │ ├── file_watcher.go │ │ │ ├── file_z_basic_test.go │ │ │ ├── file_z_http_test.go │ │ │ ├── go.mod │ │ │ └── go.sum │ │ ├── nacos/ │ │ │ ├── README.MD │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── nacos.go │ │ │ ├── nacos_discovery.go │ │ │ ├── nacos_register.go │ │ │ ├── nacos_service.go │ │ │ ├── nacos_watcher.go │ │ │ └── nacos_z_test.go │ │ ├── polaris/ │ │ │ ├── README.MD │ │ │ ├── README_ZH.MD │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── polaris.go │ │ │ ├── polaris_discovery.go │ │ │ ├── polaris_registry.go │ │ │ ├── polaris_service.go │ │ │ ├── polaris_watcher.go │ │ │ └── polaris_z_test.go │ │ └── zookeeper/ │ │ ├── README.MD │ │ ├── go.mod │ │ ├── go.sum │ │ ├── zookeeper.go │ │ ├── zookeeper_discovery.go │ │ ├── zookeeper_func.go │ │ ├── zookeeper_registrar.go │ │ ├── zookeeper_watcher.go │ │ └── zookeeper_z_test.go │ ├── rpc/ │ │ └── grpcx/ │ │ ├── go.mod │ │ ├── go.sum │ │ ├── grpcx.go │ │ ├── grpcx_grpc_client.go │ │ ├── grpcx_grpc_server.go │ │ ├── grpcx_grpc_server_config.go │ │ ├── grpcx_grpc_server_unary.go │ │ ├── grpcx_interceptor_client.go │ │ ├── grpcx_interceptor_server.go │ │ ├── grpcx_registry_file.go │ │ ├── grpcx_unit_z_ctx_test.go │ │ ├── grpcx_unit_z_grpc_server_basic_test.go │ │ ├── grpcx_unit_z_grpc_server_config_test.go │ │ ├── grpcx_unit_z_issue_test.go │ │ ├── internal/ │ │ │ ├── balancer/ │ │ │ │ ├── balancer.go │ │ │ │ ├── balancer_builder.go │ │ │ │ ├── balancer_node.go │ │ │ │ └── balancer_picker.go │ │ │ ├── grpcctx/ │ │ │ │ └── grpcctx.go │ │ │ ├── resolver/ │ │ │ │ ├── resolver.go │ │ │ │ ├── resolver_builder.go │ │ │ │ ├── resolver_manager.go │ │ │ │ └── resolver_resolver.go │ │ │ ├── tracing/ │ │ │ │ ├── tracing.go │ │ │ │ ├── tracing_interceptor.go │ │ │ │ ├── tracing_interceptor_client.go │ │ │ │ └── tracing_interceptor_server.go │ │ │ └── utils/ │ │ │ └── utils.go │ │ └── testdata/ │ │ ├── configuration/ │ │ │ └── config.yaml │ │ ├── controller/ │ │ │ └── helloworld.go │ │ └── protobuf/ │ │ ├── helloworld.pb.go │ │ ├── helloworld.proto │ │ └── helloworld_grpc.pb.go │ ├── sdk/ │ │ └── httpclient/ │ │ ├── go.mod │ │ ├── go.sum │ │ ├── httpclient.go │ │ ├── httpclient_config.go │ │ ├── httpclient_handler.go │ │ └── httpclient_z_unit_feature_handler_test.go │ └── trace/ │ ├── otlpgrpc/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── otlpgrpc.go │ └── otlphttp/ │ ├── go.mod │ ├── go.sum │ └── otlphttp.go ├── crypto/ │ ├── gaes/ │ │ ├── gaes.go │ │ └── gaes_z_unit_test.go │ ├── gcrc32/ │ │ ├── gcrc32.go │ │ └── gcrc32_z_unit_test.go │ ├── gdes/ │ │ ├── gdes.go │ │ └── gdes_z_unit_test.go │ ├── gmd5/ │ │ ├── gmd5.go │ │ └── gmd5_z_unit_test.go │ ├── grsa/ │ │ ├── README.md │ │ ├── grsa.go │ │ └── grsa_z_unit_test.go │ ├── gsha1/ │ │ ├── gsha1.go │ │ └── gsha1_z_unit_test.go │ ├── gsha256/ │ │ ├── gsha256.go │ │ └── gsha256_z_unit_test.go │ └── gsha512/ │ ├── gsha512.go │ └── gsha512_z_unit_test.go ├── database/ │ ├── gdb/ │ │ ├── gdb.go │ │ ├── gdb_converter.go │ │ ├── gdb_core.go │ │ ├── gdb_core_config.go │ │ ├── gdb_core_ctx.go │ │ ├── gdb_core_link.go │ │ ├── gdb_core_stats.go │ │ ├── gdb_core_structure.go │ │ ├── gdb_core_trace.go │ │ ├── gdb_core_transaction.go │ │ ├── gdb_core_txcore.go │ │ ├── gdb_core_underlying.go │ │ ├── gdb_core_utility.go │ │ ├── gdb_driver_default.go │ │ ├── gdb_driver_wrapper.go │ │ ├── gdb_driver_wrapper_db.go │ │ ├── gdb_func.go │ │ ├── gdb_model.go │ │ ├── gdb_model_builder.go │ │ ├── gdb_model_builder_where.go │ │ ├── gdb_model_builder_where_prefix.go │ │ ├── gdb_model_builder_whereor.go │ │ ├── gdb_model_builder_whereor_prefix.go │ │ ├── gdb_model_cache.go │ │ ├── gdb_model_delete.go │ │ ├── gdb_model_fields.go │ │ ├── gdb_model_hook.go │ │ ├── gdb_model_insert.go │ │ ├── gdb_model_join.go │ │ ├── gdb_model_lock.go │ │ ├── gdb_model_option.go │ │ ├── gdb_model_order_group.go │ │ ├── gdb_model_select.go │ │ ├── gdb_model_sharding.go │ │ ├── gdb_model_soft_time.go │ │ ├── gdb_model_transaction.go │ │ ├── gdb_model_update.go │ │ ├── gdb_model_utility.go │ │ ├── gdb_model_where.go │ │ ├── gdb_model_where_prefix.go │ │ ├── gdb_model_whereor.go │ │ ├── gdb_model_whereor_prefix.go │ │ ├── gdb_model_with.go │ │ ├── gdb_panic_recovery_test.go │ │ ├── gdb_result.go │ │ ├── gdb_schema.go │ │ ├── gdb_statement.go │ │ ├── gdb_type_record.go │ │ ├── gdb_type_result.go │ │ ├── gdb_type_result_scanlist.go │ │ ├── gdb_z_core_config_external_test.go │ │ ├── gdb_z_core_config_test.go │ │ ├── gdb_z_example_test.go │ │ ├── gdb_z_mysql_internal_test.go │ │ ├── gdb_z_unit_issue_test.go │ │ └── testdata/ │ │ ├── issue1380.sql │ │ ├── issue1401.sql │ │ ├── issue1412.sql │ │ ├── reservedwords_table_tpl.sql │ │ └── with_multiple_depends.sql │ └── gredis/ │ ├── gredis.go │ ├── gredis_adapter.go │ ├── gredis_config.go │ ├── gredis_instance.go │ ├── gredis_redis.go │ ├── gredis_redis_group_generic.go │ ├── gredis_redis_group_hash.go │ ├── gredis_redis_group_list.go │ ├── gredis_redis_group_pubsub.go │ ├── gredis_redis_group_script.go │ ├── gredis_redis_group_set.go │ ├── gredis_redis_group_sorted_set.go │ └── gredis_redis_group_string.go ├── debug/ │ └── gdebug/ │ ├── gdebug.go │ ├── gdebug_caller.go │ ├── gdebug_grid.go │ ├── gdebug_stack.go │ ├── gdebug_version.go │ ├── gdebug_z_bench_test.go │ ├── gdebug_z_unit_internal_test.go │ └── gdebug_z_unit_test.go ├── encoding/ │ ├── gbase64/ │ │ ├── gbase64.go │ │ ├── gbase64_z_unit_test.go │ │ └── testdata/ │ │ └── test │ ├── gbinary/ │ │ ├── gbinary.go │ │ ├── gbinary_be.go │ │ ├── gbinary_bit.go │ │ ├── gbinary_func.go │ │ ├── gbinary_le.go │ │ ├── gbinary_z_unit_be_test.go │ │ ├── gbinary_z_unit_le_test.go │ │ └── gbinary_z_unit_test.go │ ├── gcharset/ │ │ ├── gcharset.go │ │ └── gcharset_z_unit_test.go │ ├── gcompress/ │ │ ├── gcompress.go │ │ ├── gcompress_gzip.go │ │ ├── gcompress_z_unit_gzip_test.go │ │ ├── gcompress_z_unit_zip_test.go │ │ ├── gcompress_z_unit_zlib_test.go │ │ ├── gcompress_zip.go │ │ ├── gcompress_zlib.go │ │ └── testdata/ │ │ ├── gzip/ │ │ │ └── file.txt │ │ └── zip/ │ │ ├── path1/ │ │ │ └── 1.txt │ │ └── path2/ │ │ └── 2.txt │ ├── ghash/ │ │ ├── ghash.go │ │ ├── ghash_ap.go │ │ ├── ghash_bkdr.go │ │ ├── ghash_djb.go │ │ ├── ghash_elf.go │ │ ├── ghash_jshash.go │ │ ├── ghash_pjw.go │ │ ├── ghash_rs.go │ │ ├── ghash_sdbm.go │ │ ├── ghash_z_bench_test.go │ │ └── ghash_z_unit_test.go │ ├── ghtml/ │ │ ├── ghtml.go │ │ └── ghtml_z_unit_test.go │ ├── gini/ │ │ ├── gini.go │ │ └── gini_z_unit_test.go │ ├── gjson/ │ │ ├── gjson.go │ │ ├── gjson_api.go │ │ ├── gjson_api_config.go │ │ ├── gjson_api_encoding.go │ │ ├── gjson_api_new_load.go │ │ ├── gjson_api_new_load_content.go │ │ ├── gjson_api_new_load_path.go │ │ ├── gjson_implements.go │ │ ├── gjson_stdlib_json_util.go │ │ ├── gjson_z_bench_test.go │ │ ├── gjson_z_example_conversion_test.go │ │ ├── gjson_z_example_dataset_test.go │ │ ├── gjson_z_example_load_test.go │ │ ├── gjson_z_example_new_test.go │ │ ├── gjson_z_example_pattern_test.go │ │ ├── gjson_z_example_test.go │ │ ├── gjson_z_unit_feature_json_test.go │ │ ├── gjson_z_unit_feature_load_test.go │ │ ├── gjson_z_unit_feature_new_test.go │ │ ├── gjson_z_unit_feature_set_test.go │ │ ├── gjson_z_unit_feature_struct_test.go │ │ ├── gjson_z_unit_implements_test.go │ │ ├── gjson_z_unit_internal_test.go │ │ ├── gjson_z_unit_test.go │ │ └── testdata/ │ │ ├── json/ │ │ │ └── data1.json │ │ ├── properties/ │ │ │ └── data1.properties │ │ ├── toml/ │ │ │ └── data1.toml │ │ ├── xml/ │ │ │ └── data1.xml │ │ └── yaml/ │ │ ├── data1.yaml │ │ └── i18n-issue.yaml │ ├── gproperties/ │ │ ├── gproperties.go │ │ └── gproperties_z_unit_test.go │ ├── gtoml/ │ │ ├── gtoml.go │ │ └── gtoml_z_unit_test.go │ ├── gurl/ │ │ ├── url.go │ │ └── url_z_unit_test.go │ ├── gxml/ │ │ ├── gxml.go │ │ └── gxml_z_unit_test.go │ └── gyaml/ │ ├── gyaml.go │ └── gyaml_z_unit_test.go ├── errors/ │ ├── gcode/ │ │ ├── gcode.go │ │ ├── gcode_local.go │ │ └── gcode_z_unit_test.go │ └── gerror/ │ ├── gerror.go │ ├── gerror_api.go │ ├── gerror_api_code.go │ ├── gerror_api_option.go │ ├── gerror_api_stack.go │ ├── gerror_error.go │ ├── gerror_error_code.go │ ├── gerror_error_format.go │ ├── gerror_error_json.go │ ├── gerror_error_stack.go │ ├── gerror_z_bench_test.go │ ├── gerror_z_example_test.go │ └── gerror_z_unit_test.go ├── frame/ │ ├── g/ │ │ ├── g.go │ │ ├── g_func.go │ │ ├── g_object.go │ │ ├── g_setting.go │ │ ├── g_z_example_test.go │ │ └── g_z_unit_test.go │ └── gins/ │ ├── gins.go │ ├── gins_config.go │ ├── gins_database.go │ ├── gins_httpclient.go │ ├── gins_i18n.go │ ├── gins_log.go │ ├── gins_redis.go │ ├── gins_resource.go │ ├── gins_server.go │ ├── gins_view.go │ ├── gins_z_unit_config_test.go │ ├── gins_z_unit_database_test.go │ ├── gins_z_unit_httpclient_test.go │ ├── gins_z_unit_server_test.go │ ├── gins_z_unit_view_test.go │ └── testdata/ │ ├── config/ │ │ └── config.toml │ ├── database/ │ │ └── config.toml │ ├── redis/ │ │ └── config.toml │ ├── server/ │ │ └── config.yaml │ ├── view1/ │ │ ├── config.toml │ │ ├── test1.html │ │ └── test2.html │ └── view2/ │ ├── config.toml │ └── test.html ├── go.mod ├── go.sum ├── i18n/ │ └── gi18n/ │ ├── gi18n.go │ ├── gi18n_ctx.go │ ├── gi18n_instance.go │ ├── gi18n_manager.go │ ├── gi18n_z_unit_test.go │ └── testdata/ │ ├── i18n/ │ │ ├── en.toml │ │ ├── ja.toml │ │ ├── ru.toml │ │ ├── zh-CN.json │ │ └── zh-TW.toml │ ├── i18n-dir/ │ │ ├── en/ │ │ │ ├── hello.toml │ │ │ └── world.toml │ │ ├── ja/ │ │ │ ├── hello.yaml │ │ │ └── world.yaml │ │ ├── ru/ │ │ │ ├── hello.ini │ │ │ └── world.ini │ │ ├── zh-CN/ │ │ │ ├── hello.json │ │ │ └── world.json │ │ └── zh-TW/ │ │ ├── hello.xml │ │ └── world.xml │ ├── i18n-file/ │ │ ├── en.toml │ │ ├── ja.yaml │ │ ├── ru.ini │ │ ├── zh-CN.json │ │ └── zh-TW.xml │ └── issue-yaml/ │ └── zh.yaml ├── internal/ │ ├── command/ │ │ └── command.go │ ├── consts/ │ │ └── consts.go │ ├── deepcopy/ │ │ ├── deepcopy.go │ │ └── deepcopy_test.go │ ├── empty/ │ │ ├── empty.go │ │ └── empty_z_unit_test.go │ ├── errors/ │ │ ├── errors.go │ │ └── errors_test.go │ ├── fileinfo/ │ │ └── fileinfo.go │ ├── httputil/ │ │ ├── httputils.go │ │ └── httputils_test.go │ ├── instance/ │ │ ├── instance.go │ │ └── instance_test.go │ ├── intlog/ │ │ └── intlog.go │ ├── json/ │ │ └── json.go │ ├── mutex/ │ │ ├── mutex.go │ │ ├── mutex_z_bench_test.go │ │ └── mutex_z_unit_test.go │ ├── reflection/ │ │ ├── reflection.go │ │ └── reflection_test.go │ ├── rwmutex/ │ │ ├── rwmutex.go │ │ ├── rwmutex_z_bench_test.go │ │ └── rwmutex_z_unit_test.go │ ├── tracing/ │ │ └── tracing.go │ └── utils/ │ ├── utils.go │ ├── utils_array.go │ ├── utils_debug.go │ ├── utils_io.go │ ├── utils_is.go │ ├── utils_list.go │ ├── utils_map.go │ ├── utils_reflect.go │ ├── utils_str.go │ ├── utils_z_bench_test.go │ ├── utils_z_unit_is_test.go │ └── utils_z_unit_test.go ├── net/ │ ├── gclient/ │ │ ├── gclient.go │ │ ├── gclient_bytes.go │ │ ├── gclient_chain.go │ │ ├── gclient_config.go │ │ ├── gclient_content.go │ │ ├── gclient_discovery.go │ │ ├── gclient_dump.go │ │ ├── gclient_metrics.go │ │ ├── gclient_middleware.go │ │ ├── gclient_observability.go │ │ ├── gclient_request.go │ │ ├── gclient_request_obj.go │ │ ├── gclient_response.go │ │ ├── gclient_tracer.go │ │ ├── gclient_tracer_metrics.go │ │ ├── gclient_tracer_noop.go │ │ ├── gclient_tracer_tracing.go │ │ ├── gclient_var.go │ │ ├── gclient_websocket.go │ │ ├── gclient_z_example_test.go │ │ ├── gclient_z_unit_feature_trace_test.go │ │ ├── gclient_z_unit_issue_test.go │ │ ├── gclient_z_unit_request_obj_test.go │ │ ├── gclient_z_unit_test.go │ │ └── testdata/ │ │ ├── server.crt │ │ ├── server.key │ │ └── upload/ │ │ ├── file1.txt │ │ └── file2.txt │ ├── ghttp/ │ │ ├── ghttp.go │ │ ├── ghttp_func.go │ │ ├── ghttp_middleware_cors.go │ │ ├── ghttp_middleware_gzip.go │ │ ├── ghttp_middleware_handler_response.go │ │ ├── ghttp_middleware_json_body.go │ │ ├── ghttp_middleware_never_done_ctx.go │ │ ├── ghttp_middleware_tracing.go │ │ ├── ghttp_request.go │ │ ├── ghttp_request_auth.go │ │ ├── ghttp_request_middleware.go │ │ ├── ghttp_request_param.go │ │ ├── ghttp_request_param_ctx.go │ │ ├── ghttp_request_param_file.go │ │ ├── ghttp_request_param_form.go │ │ ├── ghttp_request_param_handler.go │ │ ├── ghttp_request_param_page.go │ │ ├── ghttp_request_param_param.go │ │ ├── ghttp_request_param_query.go │ │ ├── ghttp_request_param_request.go │ │ ├── ghttp_request_param_router.go │ │ ├── ghttp_request_view.go │ │ ├── ghttp_response.go │ │ ├── ghttp_response_cors.go │ │ ├── ghttp_response_view.go │ │ ├── ghttp_response_write.go │ │ ├── ghttp_server.go │ │ ├── ghttp_server_admin.go │ │ ├── ghttp_server_admin_process.go │ │ ├── ghttp_server_admin_unix.go │ │ ├── ghttp_server_admin_windows.go │ │ ├── ghttp_server_config.go │ │ ├── ghttp_server_config_api.go │ │ ├── ghttp_server_config_cookie.go │ │ ├── ghttp_server_config_logging.go │ │ ├── ghttp_server_config_mess.go │ │ ├── ghttp_server_config_route.go │ │ ├── ghttp_server_config_session.go │ │ ├── ghttp_server_config_static.go │ │ ├── ghttp_server_cookie.go │ │ ├── ghttp_server_domain.go │ │ ├── ghttp_server_error_logger.go │ │ ├── ghttp_server_graceful.go │ │ ├── ghttp_server_handler.go │ │ ├── ghttp_server_log.go │ │ ├── ghttp_server_metric.go │ │ ├── ghttp_server_openapi.go │ │ ├── ghttp_server_plugin.go │ │ ├── ghttp_server_pprof.go │ │ ├── ghttp_server_registry.go │ │ ├── ghttp_server_router.go │ │ ├── ghttp_server_router_group.go │ │ ├── ghttp_server_router_hook.go │ │ ├── ghttp_server_router_middleware.go │ │ ├── ghttp_server_router_serve.go │ │ ├── ghttp_server_service_handler.go │ │ ├── ghttp_server_service_object.go │ │ ├── ghttp_server_session.go │ │ ├── ghttp_server_status.go │ │ ├── ghttp_server_swagger.go │ │ ├── ghttp_server_util.go │ │ ├── ghttp_server_websocket.go │ │ ├── ghttp_z_bench_test.go │ │ ├── ghttp_z_example_test.go │ │ ├── ghttp_z_unit_feature_config_test.go │ │ ├── ghttp_z_unit_feature_context_test.go │ │ ├── ghttp_z_unit_feature_cookie_test.go │ │ ├── ghttp_z_unit_feature_custom_listeners_test.go │ │ ├── ghttp_z_unit_feature_error_code_test.go │ │ ├── ghttp_z_unit_feature_https_test.go │ │ ├── ghttp_z_unit_feature_ip_test.go │ │ ├── ghttp_z_unit_feature_log_test.go │ │ ├── ghttp_z_unit_feature_middleware_basic_test.go │ │ ├── ghttp_z_unit_feature_middleware_cors_test.go │ │ ├── ghttp_z_unit_feature_openapi_swagger_test.go │ │ ├── ghttp_z_unit_feature_otel_test.go │ │ ├── ghttp_z_unit_feature_pprof_test.go │ │ ├── ghttp_z_unit_feature_request_ctx_test.go │ │ ├── ghttp_z_unit_feature_request_file_test.go │ │ ├── ghttp_z_unit_feature_request_json_test.go │ │ ├── ghttp_z_unit_feature_request_page_test.go │ │ ├── ghttp_z_unit_feature_request_param_test.go │ │ ├── ghttp_z_unit_feature_request_struct_test.go │ │ ├── ghttp_z_unit_feature_request_test.go │ │ ├── ghttp_z_unit_feature_request_xml_test.go │ │ ├── ghttp_z_unit_feature_response_test.go │ │ ├── ghttp_z_unit_feature_router_basic_test.go │ │ ├── ghttp_z_unit_feature_router_domain_basic_test.go │ │ ├── ghttp_z_unit_feature_router_domain_object_rest_test.go │ │ ├── ghttp_z_unit_feature_router_domain_object_test.go │ │ ├── ghttp_z_unit_feature_router_exit_test.go │ │ ├── ghttp_z_unit_feature_router_group_group_test.go │ │ ├── ghttp_z_unit_feature_router_group_hook_test.go │ │ ├── ghttp_z_unit_feature_router_group_rest_test.go │ │ ├── ghttp_z_unit_feature_router_group_test.go │ │ ├── ghttp_z_unit_feature_router_hook_test.go │ │ ├── ghttp_z_unit_feature_router_names_test.go │ │ ├── ghttp_z_unit_feature_router_object_rest1_test.go │ │ ├── ghttp_z_unit_feature_router_object_rest2_test.go │ │ ├── ghttp_z_unit_feature_router_object_test.go │ │ ├── ghttp_z_unit_feature_router_standard_test.go │ │ ├── ghttp_z_unit_feature_server_util_test.go │ │ ├── ghttp_z_unit_feature_session_test.go │ │ ├── ghttp_z_unit_feature_static_test.go │ │ ├── ghttp_z_unit_feature_status_test.go │ │ ├── ghttp_z_unit_feature_template_test.go │ │ ├── ghttp_z_unit_feature_websocket_test.go │ │ ├── ghttp_z_unit_issue_test.go │ │ ├── ghttp_z_unit_middleware_gzip_test.go │ │ ├── ghttp_z_unit_test.go │ │ ├── internal/ │ │ │ ├── graceful/ │ │ │ │ └── graceful.go │ │ │ ├── response/ │ │ │ │ ├── response.go │ │ │ │ ├── response_buffer_writer.go │ │ │ │ └── response_writer.go │ │ │ └── swaggerui/ │ │ │ ├── swaggerui-redoc.go │ │ │ └── swaggerui.go │ │ └── testdata/ │ │ ├── https/ │ │ │ ├── files/ │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ │ └── packed/ │ │ │ └── packed.go │ │ ├── issue1611/ │ │ │ ├── header.html │ │ │ └── index/ │ │ │ └── layout.html │ │ ├── issue2963/ │ │ │ ├── 1.txt │ │ │ └── 中文G146(1)-icon.txt │ │ ├── main.html │ │ ├── static1/ │ │ │ ├── index.html │ │ │ └── test.html │ │ ├── template/ │ │ │ ├── basic/ │ │ │ │ └── index.html │ │ │ ├── layout1/ │ │ │ │ ├── container.html │ │ │ │ ├── footer.html │ │ │ │ ├── header.html │ │ │ │ └── layout.html │ │ │ └── layout2/ │ │ │ ├── footer.html │ │ │ ├── header.html │ │ │ ├── layout.html │ │ │ └── main/ │ │ │ ├── main1.html │ │ │ └── main2.html │ │ └── upload/ │ │ ├── file1.txt │ │ ├── file2.txt │ │ └── 中文.txt │ ├── gipv4/ │ │ ├── gipv4.go │ │ ├── gipv4_convert.go │ │ ├── gipv4_ip.go │ │ ├── gipv4_lookup.go │ │ ├── gipv4_mac.go │ │ ├── gipv4_z_unit_convert_test.go │ │ ├── gipv4_z_unit_ip_test.go │ │ ├── gipv4_z_unit_lookup_test.go │ │ ├── gipv4_z_unit_mac_test.go │ │ └── gipv4_z_unit_test.go │ ├── gipv6/ │ │ └── gipv6.go │ ├── goai/ │ │ ├── goai.go │ │ ├── goai_callback.go │ │ ├── goai_components.go │ │ ├── goai_config.go │ │ ├── goai_example.go │ │ ├── goai_external_docs.go │ │ ├── goai_header.go │ │ ├── goai_info.go │ │ ├── goai_link.go │ │ ├── goai_mediatype.go │ │ ├── goai_operation.go │ │ ├── goai_parameter.go │ │ ├── goai_parameter_ref.go │ │ ├── goai_path.go │ │ ├── goai_requestbody.go │ │ ├── goai_response.go │ │ ├── goai_response_ref.go │ │ ├── goai_security.go │ │ ├── goai_server.go │ │ ├── goai_shema.go │ │ ├── goai_shema_ref.go │ │ ├── goai_shemas.go │ │ ├── goai_tags.go │ │ ├── goai_xextensions.go │ │ ├── goai_z_unit_generic_type_test.go │ │ ├── goai_z_unit_issue_test.go │ │ ├── goai_z_unit_test.go │ │ └── testdata/ │ │ ├── EmbeddedStructAttribute/ │ │ │ └── expect.json │ │ ├── Issue3889JsonFile/ │ │ │ └── 201.json │ │ ├── NameFromJsonTag/ │ │ │ ├── expect1.json │ │ │ └── expect2.json │ │ ├── XExtension/ │ │ │ └── expect.json │ │ └── example.yaml │ ├── gsel/ │ │ ├── gsel.go │ │ ├── gsel_builder.go │ │ ├── gsel_builder_least_connection.go │ │ ├── gsel_builder_random.go │ │ ├── gsel_builder_round_robin.go │ │ ├── gsel_builder_weight.go │ │ ├── gsel_selector_least_connection.go │ │ ├── gsel_selector_random.go │ │ ├── gsel_selector_round_robin.go │ │ └── gsel_selector_weight.go │ ├── gsvc/ │ │ ├── gsvc.go │ │ ├── gsvc_discovery.go │ │ ├── gsvc_endpoint.go │ │ ├── gsvc_endpoints.go │ │ ├── gsvc_metadata.go │ │ ├── gsvc_registry.go │ │ └── gsvc_service.go │ ├── gtcp/ │ │ ├── gtcp.go │ │ ├── gtcp_conn.go │ │ ├── gtcp_conn_pkg.go │ │ ├── gtcp_func.go │ │ ├── gtcp_func_pkg.go │ │ ├── gtcp_pool.go │ │ ├── gtcp_pool_pkg.go │ │ ├── gtcp_server.go │ │ ├── gtcp_z_example_test.go │ │ ├── gtcp_z_unit_conn_pkg_test.go │ │ ├── gtcp_z_unit_pool_pkg_test.go │ │ ├── gtcp_z_unit_pool_test.go │ │ ├── gtcp_z_unit_test.go │ │ └── testdata/ │ │ ├── crtFile │ │ ├── keyFile │ │ ├── server.crt │ │ └── server.key │ ├── gtrace/ │ │ ├── gtrace.go │ │ ├── gtrace_baggage.go │ │ ├── gtrace_carrier.go │ │ ├── gtrace_content.go │ │ ├── gtrace_span.go │ │ ├── gtrace_tracer.go │ │ ├── gtrace_z_unit_carrier_test.go │ │ ├── gtrace_z_unit_feature_http_test.go │ │ ├── gtrace_z_unit_test.go │ │ └── internal/ │ │ └── provider/ │ │ ├── provider.go │ │ └── provider_idgenerator.go │ └── gudp/ │ ├── gudp.go │ ├── gudp_conn.go │ ├── gudp_conn_client_conn.go │ ├── gudp_conn_server_conn.go │ ├── gudp_func.go │ ├── gudp_server.go │ ├── gudp_z_example_test.go │ └── gudp_z_unit_test.go ├── os/ │ ├── gbuild/ │ │ ├── gbuild.go │ │ └── gbuild_z_unit_test.go │ ├── gcache/ │ │ ├── gcache.go │ │ ├── gcache_adapter.go │ │ ├── gcache_adapter_memory.go │ │ ├── gcache_adapter_memory_data.go │ │ ├── gcache_adapter_memory_expire_sets.go │ │ ├── gcache_adapter_memory_expire_times.go │ │ ├── gcache_adapter_memory_item.go │ │ ├── gcache_adapter_memory_lru.go │ │ ├── gcache_adapter_redis.go │ │ ├── gcache_cache.go │ │ ├── gcache_cache_must.go │ │ ├── gcache_z_bench_test.go │ │ ├── gcache_z_example_cache_test.go │ │ └── gcache_z_unit_test.go │ ├── gcfg/ │ │ ├── gcfg.go │ │ ├── gcfg_adaper.go │ │ ├── gcfg_adapter_content.go │ │ ├── gcfg_adapter_content_ctx.go │ │ ├── gcfg_adapter_file.go │ │ ├── gcfg_adapter_file_content.go │ │ ├── gcfg_adapter_file_ctx.go │ │ ├── gcfg_adapter_file_path.go │ │ ├── gcfg_ctx_keys.go │ │ ├── gcfg_loader.go │ │ ├── gcfg_watcher_registry.go │ │ ├── gcfg_watcher_registry_test.go │ │ ├── gcfg_z_example_test.go │ │ ├── gcfg_z_unit_adapter_content_test.go │ │ ├── gcfg_z_unit_adapter_file_test.go │ │ ├── gcfg_z_unit_basic_test.go │ │ ├── gcfg_z_unit_instance_test.go │ │ ├── gcfg_z_unit_loader_test.go │ │ ├── gcfg_z_unit_test.go │ │ ├── gcfg_z_unit_watcher_test.go │ │ └── testdata/ │ │ ├── c1.toml │ │ ├── cfg-with-utf8-bom.toml │ │ ├── default/ │ │ │ ├── config.json │ │ │ └── config.toml │ │ ├── envfile/ │ │ │ └── c6.json │ │ ├── envpath/ │ │ │ ├── c3.toml │ │ │ └── c4.json │ │ └── folder1/ │ │ ├── c1.toml │ │ └── c2.json │ ├── gcmd/ │ │ ├── gcmd.go │ │ ├── gcmd_command.go │ │ ├── gcmd_command_help.go │ │ ├── gcmd_command_object.go │ │ ├── gcmd_command_run.go │ │ ├── gcmd_parser.go │ │ ├── gcmd_scan.go │ │ ├── gcmd_z_example_test.go │ │ ├── gcmd_z_unit_feature_object1_test.go │ │ ├── gcmd_z_unit_feature_object2_test.go │ │ ├── gcmd_z_unit_feature_object3_test.go │ │ ├── gcmd_z_unit_feature_object4_test.go │ │ ├── gcmd_z_unit_issue_test.go │ │ ├── gcmd_z_unit_parser_test.go │ │ └── gcmd_z_unit_test.go │ ├── gcron/ │ │ ├── gcron.go │ │ ├── gcron_cron.go │ │ ├── gcron_entry.go │ │ ├── gcron_schedule.go │ │ ├── gcron_schedule_check.go │ │ ├── gcron_schedule_fix.go │ │ ├── gcron_schedule_next.go │ │ ├── gcron_z_bench_test.go │ │ ├── gcron_z_example_1_test.go │ │ ├── gcron_z_unit_entry_test.go │ │ ├── gcron_z_unit_schedule_test.go │ │ └── gcron_z_unit_test.go │ ├── gctx/ │ │ ├── gctx.go │ │ ├── gctx_never_done.go │ │ ├── gctx_z_unit_internal_test.go │ │ └── gctx_z_unit_test.go │ ├── genv/ │ │ ├── genv.go │ │ ├── genv_must.go │ │ └── genv_z_unit_test.go │ ├── gfile/ │ │ ├── gfile.go │ │ ├── gfile_cache.go │ │ ├── gfile_contents.go │ │ ├── gfile_copy.go │ │ ├── gfile_home.go │ │ ├── gfile_match.go │ │ ├── gfile_replace.go │ │ ├── gfile_scan.go │ │ ├── gfile_search.go │ │ ├── gfile_size.go │ │ ├── gfile_sort.go │ │ ├── gfile_source.go │ │ ├── gfile_time.go │ │ ├── gfile_z_example_cache_test.go │ │ ├── gfile_z_example_contents_test.go │ │ ├── gfile_z_example_copy_test.go │ │ ├── gfile_z_example_home_test.go │ │ ├── gfile_z_example_replace_test.go │ │ ├── gfile_z_example_scan_test.go │ │ ├── gfile_z_example_search_test.go │ │ ├── gfile_z_example_size_test.go │ │ ├── gfile_z_example_sort_test.go │ │ ├── gfile_z_example_time_test.go │ │ ├── gfile_z_exmaple_basic_test.go │ │ ├── gfile_z_unit_cache_test.go │ │ ├── gfile_z_unit_contents_test.go │ │ ├── gfile_z_unit_copy_test.go │ │ ├── gfile_z_unit_match_test.go │ │ ├── gfile_z_unit_replace_test.go │ │ ├── gfile_z_unit_scan_test.go │ │ ├── gfile_z_unit_search_test.go │ │ ├── gfile_z_unit_size_test.go │ │ ├── gfile_z_unit_sort_test.go │ │ ├── gfile_z_unit_test.go │ │ ├── gfile_z_unit_time_test.go │ │ └── testdata/ │ │ ├── dir1/ │ │ │ └── file1 │ │ ├── dir2/ │ │ │ └── file2 │ │ └── readline/ │ │ └── file.log │ ├── gfpool/ │ │ ├── gfpool.go │ │ ├── gfpool_file.go │ │ ├── gfpool_pool.go │ │ ├── gfpool_z_bench_test.go │ │ └── gfpool_z_unit_test.go │ ├── gfsnotify/ │ │ ├── gfsnotify.go │ │ ├── gfsnotify_event.go │ │ ├── gfsnotify_filefunc.go │ │ ├── gfsnotify_watcher.go │ │ ├── gfsnotify_watcher_loop.go │ │ └── gfsnotify_z_unit_test.go │ ├── glog/ │ │ ├── glog.go │ │ ├── glog_api.go │ │ ├── glog_chaining.go │ │ ├── glog_config.go │ │ ├── glog_instance.go │ │ ├── glog_logger.go │ │ ├── glog_logger_api.go │ │ ├── glog_logger_chaining.go │ │ ├── glog_logger_color.go │ │ ├── glog_logger_config.go │ │ ├── glog_logger_handler.go │ │ ├── glog_logger_handler_json.go │ │ ├── glog_logger_handler_structure.go │ │ ├── glog_logger_level.go │ │ ├── glog_logger_rotate.go │ │ ├── glog_logger_writer.go │ │ ├── glog_z_example_test.go │ │ ├── glog_z_unit_config_test.go │ │ ├── glog_z_unit_internal_test.go │ │ ├── glog_z_unit_logger_chaining_test.go │ │ ├── glog_z_unit_logger_handler_test.go │ │ ├── glog_z_unit_logger_rotate_test.go │ │ └── glog_z_unit_test.go │ ├── gmetric/ │ │ ├── gmetric.go │ │ ├── gmetric_attribute.go │ │ ├── gmetric_attribute_map.go │ │ ├── gmetric_global_attributes.go │ │ ├── gmetric_meter.go │ │ ├── gmetric_meter_callback.go │ │ ├── gmetric_meter_counter.go │ │ ├── gmetric_meter_histogram.go │ │ ├── gmetric_meter_metric_info.go │ │ ├── gmetric_meter_metric_instrument.go │ │ ├── gmetric_meter_observable_counter.go │ │ ├── gmetric_meter_observable_gauge.go │ │ ├── gmetric_meter_observable_updown_counter.go │ │ ├── gmetric_meter_updown_counter.go │ │ ├── gmetric_metric.go │ │ ├── gmetric_noop_counter_performer.go │ │ ├── gmetric_noop_histogram_performer.go │ │ ├── gmetric_noop_observable_counter_performer.go │ │ ├── gmetric_noop_observable_gauge_performer.go │ │ ├── gmetric_noop_observable_updown_counter_performer.go │ │ ├── gmetric_noop_updown_counter_performer.go │ │ ├── gmetric_provider.go │ │ ├── gmetric_z_unit_internal_test.go │ │ └── gmetric_z_unit_test.go │ ├── gmlock/ │ │ ├── gmlock.go │ │ ├── gmlock_locker.go │ │ ├── gmlock_z_bench_test.go │ │ └── gmlock_z_unit_test.go │ ├── gmutex/ │ │ ├── gmutex.go │ │ ├── gmutex_mutex.go │ │ ├── gmutex_rwmutex.go │ │ ├── gmutex_z_bench_test.go │ │ ├── gmutex_z_unit_mutex_test.go │ │ └── gmutex_z_unit_rwmutex_test.go │ ├── gproc/ │ │ ├── gproc.go │ │ ├── gproc_comm.go │ │ ├── gproc_comm_receive.go │ │ ├── gproc_comm_send.go │ │ ├── gproc_manager.go │ │ ├── gproc_must.go │ │ ├── gproc_process.go │ │ ├── gproc_process_newprocess.go │ │ ├── gproc_process_newprocess_windows.go │ │ ├── gproc_shell.go │ │ ├── gproc_signal.go │ │ ├── gproc_z_signal_test.go │ │ ├── gproc_z_unit_process_windows_test.go │ │ ├── gproc_z_unit_shell_windows_test.go │ │ ├── gproc_z_unit_test.go │ │ └── testdata/ │ │ ├── gobuild/ │ │ │ └── main.go │ │ └── shellexec/ │ │ └── main.go │ ├── gres/ │ │ ├── gres.go │ │ ├── gres_file.go │ │ ├── gres_func.go │ │ ├── gres_func_zip.go │ │ ├── gres_http_file.go │ │ ├── gres_instance.go │ │ ├── gres_resource.go │ │ ├── gres_z_unit_test.go │ │ └── testdata/ │ │ ├── data/ │ │ │ └── data.go │ │ ├── example/ │ │ │ ├── boot/ │ │ │ │ └── data.go │ │ │ └── files/ │ │ │ ├── config/ │ │ │ │ └── config.toml │ │ │ ├── public/ │ │ │ │ └── index.html │ │ │ └── template/ │ │ │ └── index.tpl │ │ ├── files/ │ │ │ ├── config-custom/ │ │ │ │ ├── config.toml │ │ │ │ └── my.ini │ │ │ ├── config-res/ │ │ │ │ ├── config.toml │ │ │ │ └── my.ini │ │ │ ├── dir1/ │ │ │ │ ├── sub/ │ │ │ │ │ └── sub-test1.txt │ │ │ │ └── test1 │ │ │ ├── dir2/ │ │ │ │ ├── sub/ │ │ │ │ │ └── sub-test2.txt │ │ │ │ └── test2 │ │ │ ├── i18n-dir/ │ │ │ │ ├── en/ │ │ │ │ │ ├── hello.toml │ │ │ │ │ └── world.toml │ │ │ │ ├── ja/ │ │ │ │ │ ├── hello.yaml │ │ │ │ │ └── world.yaml │ │ │ │ ├── ru/ │ │ │ │ │ ├── hello.ini │ │ │ │ │ └── world.ini │ │ │ │ ├── zh-CN/ │ │ │ │ │ ├── hello.json │ │ │ │ │ └── world.json │ │ │ │ └── zh-TW/ │ │ │ │ ├── hello.xml │ │ │ │ └── world.xml │ │ │ ├── i18n-file/ │ │ │ │ ├── en.toml │ │ │ │ ├── ja.yaml │ │ │ │ ├── ru.ini │ │ │ │ ├── zh-CN.json │ │ │ │ └── zh-TW.xml │ │ │ ├── i18n-res/ │ │ │ │ ├── en.toml │ │ │ │ ├── ja.toml │ │ │ │ ├── ru.toml │ │ │ │ ├── zh-CN.toml │ │ │ │ └── zh-TW.toml │ │ │ ├── root/ │ │ │ │ ├── css/ │ │ │ │ │ └── style.css │ │ │ │ └── index.html │ │ │ └── template-res/ │ │ │ ├── index.html │ │ │ ├── layout1/ │ │ │ │ ├── container.html │ │ │ │ ├── footer.html │ │ │ │ ├── header.html │ │ │ │ └── layout.html │ │ │ └── layout2/ │ │ │ ├── footer.html │ │ │ ├── header.html │ │ │ ├── layout.html │ │ │ └── main/ │ │ │ ├── main1.html │ │ │ └── main2.html │ │ ├── testdata.go │ │ └── testdata.txt │ ├── grpool/ │ │ ├── grpool.go │ │ ├── grpool_pool.go │ │ ├── grpool_supervisor.go │ │ ├── grpool_z_bench_test.go │ │ └── grpool_z_unit_test.go │ ├── gsession/ │ │ ├── gsession.go │ │ ├── gsession_manager.go │ │ ├── gsession_session.go │ │ ├── gsession_storage.go │ │ ├── gsession_storage_base.go │ │ ├── gsession_storage_file.go │ │ ├── gsession_storage_memory.go │ │ ├── gsession_storage_redis.go │ │ ├── gsession_storage_redis_hashtable.go │ │ ├── gsession_z_example_test.go │ │ ├── gsession_z_unit_storage_file_test.go │ │ ├── gsession_z_unit_storage_memory_test.go │ │ └── gsession_z_unit_test.go │ ├── gspath/ │ │ ├── gspath.go │ │ ├── gspath_cache.go │ │ └── gspath_z_unit_test.go │ ├── gstructs/ │ │ ├── gstructs.go │ │ ├── gstructs_field.go │ │ ├── gstructs_field_tag.go │ │ ├── gstructs_tag.go │ │ ├── gstructs_type.go │ │ ├── gstructs_z_bench_test.go │ │ └── gstructs_z_unit_test.go │ ├── gtime/ │ │ ├── gtime.go │ │ ├── gtime_format.go │ │ ├── gtime_sql.go │ │ ├── gtime_time.go │ │ ├── gtime_time_wrapper.go │ │ ├── gtime_time_zone.go │ │ ├── gtime_z_bench_test.go │ │ ├── gtime_z_example_basic_test.go │ │ ├── gtime_z_example_time_test.go │ │ ├── gtime_z_unit_feature_json_test.go │ │ ├── gtime_z_unit_feature_sql_test.go │ │ ├── gtime_z_unit_format_test.go │ │ ├── gtime_z_unit_issue_test.go │ │ ├── gtime_z_unit_test.go │ │ └── gtime_z_unit_time_test.go │ ├── gtimer/ │ │ ├── gtimer.go │ │ ├── gtimer_entry.go │ │ ├── gtimer_exit.go │ │ ├── gtimer_queue.go │ │ ├── gtimer_queue_heap.go │ │ ├── gtimer_timer.go │ │ ├── gtimer_timer_loop.go │ │ ├── gtimer_z_bench_test.go │ │ ├── gtimer_z_example_test.go │ │ ├── gtimer_z_unit_entry_test.go │ │ ├── gtimer_z_unit_internal_test.go │ │ ├── gtimer_z_unit_test.go │ │ └── gtimer_z_unit_timer_test.go │ └── gview/ │ ├── gview.go │ ├── gview_buildin.go │ ├── gview_config.go │ ├── gview_error.go │ ├── gview_i18n.go │ ├── gview_instance.go │ ├── gview_parse.go │ ├── gview_z_unit_config_test.go │ ├── gview_z_unit_feature_encode_test.go │ ├── gview_z_unit_i18n_test.go │ ├── gview_z_unit_test.go │ └── testdata/ │ ├── config/ │ │ └── test.html │ ├── i18n/ │ │ ├── en.toml │ │ ├── ja.toml │ │ ├── ru.toml │ │ ├── zh-CN.toml │ │ └── zh-TW.toml │ ├── issue1416/ │ │ ├── gview copy.tpl │ │ └── gview.tpl │ └── tpl/ │ └── encode.tpl ├── sonar-project.properties ├── test/ │ └── gtest/ │ ├── gtest.go │ ├── gtest_t.go │ ├── gtest_util.go │ ├── gtest_z_unit_test.go │ └── testdata/ │ └── testdata.txt ├── text/ │ ├── gregex/ │ │ ├── gregex.go │ │ ├── gregex_cache.go │ │ ├── gregex_z_bench_test.go │ │ ├── gregex_z_example_test.go │ │ └── gregex_z_unit_test.go │ └── gstr/ │ ├── gstr.go │ ├── gstr_array.go │ ├── gstr_case.go │ ├── gstr_compare.go │ ├── gstr_contain.go │ ├── gstr_convert.go │ ├── gstr_count.go │ ├── gstr_create.go │ ├── gstr_domain.go │ ├── gstr_is.go │ ├── gstr_length.go │ ├── gstr_list.go │ ├── gstr_parse.go │ ├── gstr_pos.go │ ├── gstr_replace.go │ ├── gstr_similar.go │ ├── gstr_slashes.go │ ├── gstr_split_join.go │ ├── gstr_sub.go │ ├── gstr_trim.go │ ├── gstr_upper_lower.go │ ├── gstr_version.go │ ├── gstr_z_example_test.go │ ├── gstr_z_unit_array_test.go │ ├── gstr_z_unit_case_test.go │ ├── gstr_z_unit_convert_test.go │ ├── gstr_z_unit_domain_test.go │ ├── gstr_z_unit_list_test.go │ ├── gstr_z_unit_parse_test.go │ ├── gstr_z_unit_pos_test.go │ ├── gstr_z_unit_replace_test.go │ ├── gstr_z_unit_test.go │ ├── gstr_z_unit_trim_test.go │ └── gstr_z_unit_version_test.go ├── util/ │ ├── gconv/ │ │ ├── gconv.go │ │ ├── gconv_basic.go │ │ ├── gconv_convert.go │ │ ├── gconv_float.go │ │ ├── gconv_int.go │ │ ├── gconv_map.go │ │ ├── gconv_maps.go │ │ ├── gconv_maptomap.go │ │ ├── gconv_maptomaps.go │ │ ├── gconv_ptr.go │ │ ├── gconv_scan.go │ │ ├── gconv_scan_list.go │ │ ├── gconv_slice_any.go │ │ ├── gconv_slice_bool.go │ │ ├── gconv_slice_float.go │ │ ├── gconv_slice_int.go │ │ ├── gconv_slice_str.go │ │ ├── gconv_slice_uint.go │ │ ├── gconv_struct.go │ │ ├── gconv_structs.go │ │ ├── gconv_time.go │ │ ├── gconv_uint.go │ │ ├── gconv_unsafe.go │ │ ├── gconv_z_bench_bytes_test.go │ │ ├── gconv_z_bench_float_test.go │ │ ├── gconv_z_bench_int_test.go │ │ ├── gconv_z_bench_reflect_test.go │ │ ├── gconv_z_bench_str_test.go │ │ ├── gconv_z_bench_struct_test.go │ │ ├── gconv_z_unit_bool_test.go │ │ ├── gconv_z_unit_byte_test.go │ │ ├── gconv_z_unit_convert_test.go │ │ ├── gconv_z_unit_converter_test.go │ │ ├── gconv_z_unit_custom_base_type_test.go │ │ ├── gconv_z_unit_float_test.go │ │ ├── gconv_z_unit_int_test.go │ │ ├── gconv_z_unit_interfaces_test.go │ │ ├── gconv_z_unit_issue_test.go │ │ ├── gconv_z_unit_map_test.go │ │ ├── gconv_z_unit_ptr_test.go │ │ ├── gconv_z_unit_rune_test.go │ │ ├── gconv_z_unit_scan_basic_types_test.go │ │ ├── gconv_z_unit_scan_list_test.go │ │ ├── gconv_z_unit_scan_omit_test.go │ │ ├── gconv_z_unit_scan_test.go │ │ ├── gconv_z_unit_string_test.go │ │ ├── gconv_z_unit_struct_marshal_unmarshal_test.go │ │ ├── gconv_z_unit_struct_test.go │ │ ├── gconv_z_unit_test.go │ │ ├── gconv_z_unit_time_test.go │ │ ├── gconv_z_unit_uint_test.go │ │ ├── gconv_z_unit_unsafe_test.go │ │ └── internal/ │ │ ├── converter/ │ │ │ ├── converter.go │ │ │ ├── converter_bool.go │ │ │ ├── converter_builtin.go │ │ │ ├── converter_bytes.go │ │ │ ├── converter_convert.go │ │ │ ├── converter_float.go │ │ │ ├── converter_int.go │ │ │ ├── converter_map.go │ │ │ ├── converter_maptomap.go │ │ │ ├── converter_maptomaps.go │ │ │ ├── converter_rune.go │ │ │ ├── converter_scan.go │ │ │ ├── converter_slice_any.go │ │ │ ├── converter_slice_bool.go │ │ │ ├── converter_slice_float.go │ │ │ ├── converter_slice_int.go │ │ │ ├── converter_slice_map.go │ │ │ ├── converter_slice_str.go │ │ │ ├── converter_slice_uint.go │ │ │ ├── converter_string.go │ │ │ ├── converter_struct.go │ │ │ ├── converter_structs.go │ │ │ ├── converter_time.go │ │ │ └── converter_uint.go │ │ ├── localinterface/ │ │ │ └── localinterface.go │ │ └── structcache/ │ │ ├── structcache.go │ │ ├── structcache_cached.go │ │ ├── structcache_cached_field_info.go │ │ ├── structcache_cached_struct_info.go │ │ └── structcache_pool.go │ ├── gmeta/ │ │ ├── gmeta.go │ │ ├── gmeta_z_bench_test.go │ │ └── gmeta_z_unit_test.go │ ├── gmode/ │ │ ├── gmode.go │ │ └── gmode_z_unit_test.go │ ├── gpage/ │ │ ├── gpage.go │ │ └── gpage_z_unit_test.go │ ├── grand/ │ │ ├── grand.go │ │ ├── grand_buffer.go │ │ ├── grand_z_bench_test.go │ │ └── grand_z_unit_test.go │ ├── gtag/ │ │ ├── gtag.go │ │ ├── gtag_enums.go │ │ ├── gtag_func.go │ │ ├── gtag_z_example_test.go │ │ └── gtag_z_unit_test.go │ ├── guid/ │ │ ├── guid.go │ │ ├── guid_z_bench_test.go │ │ └── guid_z_unit_test.go │ ├── gutil/ │ │ ├── gutil.go │ │ ├── gutil_comparator.go │ │ ├── gutil_copy.go │ │ ├── gutil_default.go │ │ ├── gutil_dump.go │ │ ├── gutil_goroutine.go │ │ ├── gutil_is.go │ │ ├── gutil_list.go │ │ ├── gutil_map.go │ │ ├── gutil_reflect.go │ │ ├── gutil_slice.go │ │ ├── gutil_struct.go │ │ ├── gutil_try_catch.go │ │ ├── gutil_z_bench_test.go │ │ ├── gutil_z_example_test.go │ │ ├── gutil_z_unit_comparator_test.go │ │ ├── gutil_z_unit_copy_test.go │ │ ├── gutil_z_unit_dump_test.go │ │ ├── gutil_z_unit_goroutine_test.go │ │ ├── gutil_z_unit_is_test.go │ │ ├── gutil_z_unit_list_test.go │ │ ├── gutil_z_unit_map_test.go │ │ ├── gutil_z_unit_reflect_test.go │ │ ├── gutil_z_unit_slice_test.go │ │ ├── gutil_z_unit_struct_test.go │ │ └── gutil_z_unit_test.go │ └── gvalid/ │ ├── gvalid.go │ ├── gvalid_error.go │ ├── gvalid_register.go │ ├── gvalid_validator.go │ ├── gvalid_validator_check_map.go │ ├── gvalid_validator_check_struct.go │ ├── gvalid_validator_check_value.go │ ├── gvalid_validator_message.go │ ├── gvalid_z_example_feature_rule_test.go │ ├── gvalid_z_example_test.go │ ├── gvalid_z_unit_feature_checkmap_test.go │ ├── gvalid_z_unit_feature_checkstruct_test.go │ ├── gvalid_z_unit_feature_ci_test.go │ ├── gvalid_z_unit_feature_custom_error_test.go │ ├── gvalid_z_unit_feature_custom_rule_test.go │ ├── gvalid_z_unit_feature_i18n_test.go │ ├── gvalid_z_unit_feature_meta_test.go │ ├── gvalid_z_unit_feature_recursive_test.go │ ├── gvalid_z_unit_feature_rule_test.go │ ├── gvalid_z_unit_internal_test.go │ ├── gvalid_z_unit_issue_test.go │ ├── internal/ │ │ └── builtin/ │ │ ├── builtin.go │ │ ├── builtin_after.go │ │ ├── builtin_after_equal.go │ │ ├── builtin_alpha.go │ │ ├── builtin_alpha_dash.go │ │ ├── builtin_alpha_num.go │ │ ├── builtin_array.go │ │ ├── builtin_bail.go │ │ ├── builtin_bank_card.go │ │ ├── builtin_before.go │ │ ├── builtin_before_equal.go │ │ ├── builtin_between.go │ │ ├── builtin_boolean.go │ │ ├── builtin_ci.go │ │ ├── builtin_date.go │ │ ├── builtin_date_format.go │ │ ├── builtin_datetime.go │ │ ├── builtin_different.go │ │ ├── builtin_domain.go │ │ ├── builtin_email.go │ │ ├── builtin_enums.go │ │ ├── builtin_eq.go │ │ ├── builtin_float.go │ │ ├── builtin_foreach.go │ │ ├── builtin_gt.go │ │ ├── builtin_gte.go │ │ ├── builtin_in.go │ │ ├── builtin_integer.go │ │ ├── builtin_ip.go │ │ ├── builtin_ipv4.go │ │ ├── builtin_ipv6.go │ │ ├── builtin_json.go │ │ ├── builtin_length.go │ │ ├── builtin_lowercase.go │ │ ├── builtin_lt.go │ │ ├── builtin_lte.go │ │ ├── builtin_mac.go │ │ ├── builtin_max.go │ │ ├── builtin_max_length.go │ │ ├── builtin_min.go │ │ ├── builtin_min_length.go │ │ ├── builtin_not_eq.go │ │ ├── builtin_not_in.go │ │ ├── builtin_not_regex.go │ │ ├── builtin_numeric.go │ │ ├── builtin_passport.go │ │ ├── builtin_password.go │ │ ├── builtin_password2.go │ │ ├── builtin_password3.go │ │ ├── builtin_phone.go │ │ ├── builtin_phone_loose.go │ │ ├── builtin_postcode.go │ │ ├── builtin_qq.go │ │ ├── builtin_regex.go │ │ ├── builtin_required.go │ │ ├── builtin_required_if.go │ │ ├── builtin_required_if_all.go │ │ ├── builtin_required_unless.go │ │ ├── builtin_required_with.go │ │ ├── builtin_required_with_all.go │ │ ├── builtin_required_without.go │ │ ├── builtin_required_without_all.go │ │ ├── builtin_resident_id.go │ │ ├── builtin_same.go │ │ ├── builtin_size.go │ │ ├── builtin_telephone.go │ │ ├── builtin_uppercase.go │ │ └── builtin_url.go │ └── testdata/ │ └── i18n/ │ ├── cn/ │ │ └── validation.toml │ └── en/ │ └── validation.toml └── version.go