{"id":45345862,"url":"https://github.com/xakep666/unusual_generics","last_synced_at":"2026-02-21T11:30:42.002Z","repository":{"id":57631718,"uuid":"410499434","full_name":"xakep666/unusual_generics","owner":"xakep666","description":"Collection of unusual generics usecases in Go","archived":false,"fork":false,"pushed_at":"2022-03-25T10:15:29.000Z","size":24,"stargazers_count":55,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-06-20T15:43:07.662Z","etag":null,"topics":["generics","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xakep666.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-26T08:50:39.000Z","updated_at":"2024-01-12T14:47:35.000Z","dependencies_parsed_at":"2022-09-04T22:34:25.936Z","dependency_job_id":null,"html_url":"https://github.com/xakep666/unusual_generics","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/xakep666/unusual_generics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xakep666%2Funusual_generics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xakep666%2Funusual_generics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xakep666%2Funusual_generics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xakep666%2Funusual_generics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xakep666","download_url":"https://codeload.github.com/xakep666/unusual_generics/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xakep666%2Funusual_generics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29679771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T11:29:27.227Z","status":"ssl_error","status_checked_at":"2026-02-21T11:29:20.292Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["generics","golang"],"created_at":"2026-02-21T11:30:40.747Z","updated_at":"2026-02-21T11:30:41.995Z","avatar_url":"https://github.com/xakep666.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Unusual Generics\n================\n\n[![Run Tests](https://github.com/xakep666/unusual_generics/actions/workflows/testing.yml/badge.svg)](https://github.com/xakep666/unusual_generics/actions/workflows/testing.yml)\n[![Go Reference](https://pkg.go.dev/badge/github.com/xakep666/unusual_generics.svg)](https://pkg.go.dev/github.com/xakep666/unusual_generics)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[Type parameters](https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md) or Generics\nin Go designed to reduce boilerplate for container data types like lists, graphs, etc. and functions like map, filter, reduce...\n\nBut it's possible to use them in other (I've named them 'unusual') cases. I'm collecting such cases in this repository.\nWhat's inside:\n* [Type to emulate JS 'undefined' for JSON](json_undefined.go)\n* [Type to deal with non-standard time formats in JSON/XML/etc.](time_format.go)\n* [Function to get pointer from literal in one line](ptr.go)\n* [Generic version of x/sync/singleflight.Group](singleflight.go)\n* [Wrapper for jsonb-like columns for `database/sql`](sql_json.go)\n\nFeel free to open issue or pull request to add new one.\n\nNote that until 1.18 release documentation on 'pkg.go.dev' will not be rendered.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxakep666%2Funusual_generics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxakep666%2Funusual_generics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxakep666%2Funusual_generics/lists"}