{"id":15069183,"url":"https://github.com/pkg-dot-zip/pairtripleandup","last_synced_at":"2026-01-03T16:03:53.310Z","repository":{"id":219456828,"uuid":"749017987","full_name":"pkg-dot-zip/PairTripleAndUp","owner":"pkg-dot-zip","description":"Kotlins Tuples stop at Pair \u0026 Triple. This adds dataclasses for Quadruple up to Quingentuple and beyond.","archived":false,"fork":false,"pushed_at":"2024-01-27T15:39:18.000Z","size":985,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-03T05:33:52.244Z","etag":null,"topics":["bad-code","jvm","kotlin","kotlin-library","programming-horror","tuple","tuples"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/pkg-dot-zip.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-27T10:46:41.000Z","updated_at":"2024-06-26T03:16:46.000Z","dependencies_parsed_at":"2024-01-27T16:44:04.661Z","dependency_job_id":"9e5706ab-bb9a-410a-95ab-417ac641bd1c","html_url":"https://github.com/pkg-dot-zip/PairTripleAndUp","commit_stats":null,"previous_names":["pkg-dot-zip/pairtripleandup"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg-dot-zip%2FPairTripleAndUp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg-dot-zip%2FPairTripleAndUp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg-dot-zip%2FPairTripleAndUp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg-dot-zip%2FPairTripleAndUp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkg-dot-zip","download_url":"https://codeload.github.com/pkg-dot-zip/PairTripleAndUp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235176666,"owners_count":18948089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bad-code","jvm","kotlin","kotlin-library","programming-horror","tuple","tuples"],"created_at":"2024-09-25T01:40:54.685Z","updated_at":"2025-01-22T19:41:33.674Z","avatar_url":"https://github.com/pkg-dot-zip.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/pkg-dot-zip/PairTripleAndUp\" rel=\"noopener\"\u003e\n \u003cimg width=200px height=200px src=\"https://raw.githubusercontent.com/pkg-dot-zip/PairTripleAndUp/master/projectLogo.png\" alt=\"Project logo\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003ePairTripleAndUp\u003c/h3\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n  [![Stars](https://img.shields.io/github/stars/pkg-dot-zip/PairTripleAndUp.svg)](https://github.com/pkg-dot-zip/PairTripleAndUp/stargazers)\n  [![GitHub Issues](https://img.shields.io/github/issues/pkg-dot-zip/PairTripleAndUp.svg)](https://github.com/pkg-dot-zip/PairTripleAndUp/issues)\n  [![GitHub Pull Requests](https://img.shields.io/github/issues-pr/pkg-dot-zip/PairTripleAndUp.svg)](https://github.com/pkg-dot-zip/PairTripleAndUp/pulls)\n  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)\n\n\u003c/div\u003e\n\n---\n\u003cp align=\"center\"\u003eWhy would Kotlins Tuples stop at \u003ca href=\"https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/\"\u003ePair\u003c/a\u003e \u0026 \u003ca href=\"https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-triple/\"\u003eTriple\u003c/a\u003e?! Just continue to the thousands...\n\u003c/p\u003e\n\u003cp align=\"center\"\u003eA joke just so I can be on \u003ca href=\"https://www.reddit.com/r/programminghorror/\"\u003eProgrammingHorror\u003c/a\u003e.\n    \u003cbr\u003e \n\u003c/p\u003e\n\n## 📝 Table of Contents\n- [About](#about)\n- [TODO](#todo)\n- [Usage](#usage)\n- [Example]()\n- [Built Using](#built_using)\n- [Authors](#authors)\n\n## 🧐 About \u003ca name = \"about\"\u003e\u003c/a\u003e\n### What is it?\nThis repo contains all kinds of Tuples (click [here](#included-tuples) to see which one are default) **You can generate EVEN MORE by changing the values in *Config.kt!***\n\nIf you find this funny (or if you're insane and planning on actually using this) make sure to [star](https://github.com/pkg-dot-zip/PairTripleAndUp/stargazers) the repository. ⭐\n\nIf you are bored, you can help implement some more by playing around with the configuration. Feel free to [submit a PR](https://github.com/pkg-dot-zip/PairTripleAndUp/pulls). 💪🏻\n\nIf you see any other issues please feel free to [submit a PR](https://github.com/pkg-dot-zip/PairTripleAndUp/pulls), if you are okay with this project being in your history.\n\n### Why?! 😱\n#### The reason\nI could make up a great story about how I had a dream, or even better how I actually needed it (and thus having a reason to justify creating this monstrosity).\n\nHowever, truth be told, I thought it would be **funny**. I saw a video about the [/r/ProgrammingHorror](https://www.reddit.com/r/programminghorror/) subreddit and I just needed to create something that would be worth putting on there.\n\n### Did you get the attention you wanted?\nThen, after I had finished creating this project, I read the subreddit rules and saw that generated code was not allowed. After recovering from the heartbreaking realization that I wasted my morning, I moved on with life.\n\nHowever, technically, using a *quadragintuple* or a *septingentuple* wouldn't be generated code (although obviously the dataclass itself is generated).\n\nSo who knows, I might get there. 🤷🏻‍♂️\n\n### Do you feel any remorse?\nNo, I have actually been sleeping much better lately. 😴\n\n#### But what if any future employers see this repository?\nThey should know I had the **balls** to do this. 🗣️🗣️\nThey want a hard-working employee right?! Nothing is stopping me baby 🕺🏻🪩✨\n\n### Included Tuples \u003ca name = \"tuples\"\u003e\u003c/a\u003e\nThis repo contains implementations of tuples with the following values:\n| Number | HorrorSimple | HorrorFull |\n| ------ | ------------ | ---------- |\n| 1-20   | ✔️          |  ✔️        |\n| 30   | ✔️          |  ✔️        |\n| 40   | ✔️          |  ✔️        |\n| 50   | ✔️          |  ✔️        |\n| 60   | ✔️          |  ✔️        |\n| 70   | ✔️          |  ✔️        |\n| 80   | ✔️          |  ✔️        |\n| 90   | ✔️          |  ✔️        |\n| 100   | ✔️          |  ✔️        |\n| 200   | ✔️          |  ✔️        |\n| 300   | ✔️          |  ✔️        |\n| 400   | ✔️          |  ✔️        |\n| 500   | ✔️          |  ✔️        |\n| 600   | ✔️          |  ✔️        |\n| 700   | ✔️          |  ✔️        |\n| 800   | ❌          |  ✔️        |\n| 900   | ❌          |  ❌        |\n| 1000   | ❌          |  ❌        |\n\n## 🛠️ TODO \u003ca name = \"todo\"\u003e\u003c/a\u003e\n- Technically we could probably use maps, arrays or whatever to store some more data \u0026 we would have to use less parameters, but I am not putting more time into this. I have actual projects to maintain.\n- You could also play around with the configuration of the JVM to avoid getting an [OutOfMemoryError](https://docs.oracle.com/javase/8/docs/api/java/lang/OutOfMemoryError.html) as quickly.\n\nIf you see any other issues please feel free to [submit a PR](https://github.com/pkg-dot-zip/PairTripleAndUp/pulls), if you are okay with this project being in your history.\n\n## 🎈 Usage \u003ca name=\"usage\"\u003e\u003c/a\u003e\nWhy would you w..?! 🤨 You know what, okay.\n\n### Plug-and-play\n1. Download either:\n  - *HorrorSimple.kt* \u003csub\u003e\u003csup\u003e(no documentation, no *.toString()* \u0026 *.toList()*)\u003c/sub\u003e\u003c/sup\u003e\n  - *HorrorFull.kt* \u003csub\u003e\u003csup\u003e(documentation, *.toString()* \u0026 *.toList() but less tuples)\u003c/sub\u003e\u003c/sup\u003e\n1. Drag them into your Kotlin project.\n1. Enjoy long compile times. ⏳\n1. Pray you don't get an [OutOfMemoryError](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-out-of-memory-error/). 🙏🏻\n\n### Generating yourself\nTo generate a proper *.kt* file:\n1. Open the project in [IntelliJ](https://www.jetbrains.com/idea/).\n1. Go to *Config.kt* and change the values to whatever it is you prefer.\n1. Change some code around if you need or want to.\n1. Feel  ashamed. 😳\n\nTo use the generated file:\n1. Drag the generated *.kt* file from the folder you set into a valid *src* folder.\n1. Code, and stay, away! 🏃🏻\n\n## Example\nExample usage of a quadruple (4). Unfortunately, a quadruple is not enough to also store a [Byte](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-byte/) and [Short](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-short/) \u003csub\u003e\u003csup\u003e~~(since everyone forgets the [unsigned types in Kotlin](https://kotlinlang.org/docs/unsigned-integer-types.html))~~\u003c/sub\u003e\u003c/sup\u003e.\nYou can see this will never be enough for real programmers.\n```kotlin\nfun example1() {\n        val quadruple: Quadruple\u003cInt, Float, Long, Double\u003e =\n            Quadruple(0, 0F, 0L, 0.0)\n        \n        doALotOfWork(quadruple)\n    }\n```\n\nExample usage of a sexdecuple (16).\nThis should be very understandable by beginners, but might not contain enough values for you.\n```kotlin\nfun example2() {\n        val sexdecuple: Sexdecuple\u003cString, Int, Int, Array\u003cString\u003e, Boolean, Boolean, Float, Boolean, String, Char, String, String?, Long, Char, Char?, Char\u003e =\n            Sexdecuple(\"Hey\", 2, 3, arrayOf(\"\"), false, true, 1F, false, \"\", 'w', \"a\", null, 1L, 'p', 'a', 'b',\n            )\n\n        println(sexdecuple.toString())\n    }\n```\n\nExample usage of a quingentuple (500). Might be useful if you have a small amount of data you need to store real quick.\n```kotlin\nfun example3() {\n        val quingentuple: Quingentuple\u003cChar, Char, Char, Char, Char, Char, Long, Char, Char, Char, Char, Char, Char, Char, Char, Int, Char, Char, Double, Char, Char, Char, Double, Char, Char, Char, Char, String, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Char?, Char, Char, Char, Char, Char, Any, Char, Char, Char?, Char, Char, Char, Char, Char, Char, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Char, Char?, Char, Char, Char, Char, Char, Char, Char?, Char, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char?, Char?, Any, Char, Char, Char, Char, Char, Char, Char, Char?, Char, Char, Char, Char, Char?, Char, Char, Char, Char, Char, Char, Char, Char?, Char, Char, Char, Char, Char, Char, Char, Char, Char, Any, Char, Char, Char, Char, Char?, Char, Char, Char, Any?, Char, Char, Char, Any, Char, Char?, Char?, Char, Char, Char, Char, Char, Char, Char, Any, Char, Char, Char?, Char, Char, Char?, Char, Char, Any, Char, Char, Char, Char?, Char?, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Any, Char, Char, Char, Char, Char?, Char, Char, Char, Char?, Char, Char, Any, Any, Any, Char, Char?, Char, Char, Char?, Char, Char, Char, Any?, Char, Char, Char, Char, Char, Char?, Any?, Char, Char, Char, Char, Char, Any, Char?, Char, Char, Any?, Char, Char, Char, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char?, Char, Char, Char, Char?, Char, Char?, Char, Any, Char, Char, Any?, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char?, Char, Char?, Char, Char, Char, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Char, Any, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char?, Char?, Char?, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Any, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char?, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char, Char?\u003e =\n            Quingentuple('V','i','k','t','o','r',809L,'G','y','ö','k','e','r','e','s',2987,'i','s',4.2,'t','h','e',4.1,'b','e','s','t',\"Kotlin\",'f','o','o','t','b','a','l','l','e','r',' ','g','l','o','b','a','l','l','y',',',' ','e','x','c','e','l','l','i','n','g',' ','i','n',' ','s','k','i','l','l','s',',',' ','v','i','s','i','o','n',',',' ','a','n','d',' ','v','e','r','s','a','t','i','l','i','t','y','.',' ','V','i','k','t','o','r',' ','G','y','ö','k','e','r','e','s',' ','i','s',' ','t','h','e',' ','b','e','s','t',' ','f','o','o','t','b','a','l','l','e','r','.',' ','H','i','s',' ','d','e','d','i','c','a','t','i','o','n',' ','a','n','d',' ','w','o','r','k',' ','e','t','h','i','c',' ','s','e','t',' ','h','i','m',' ','a','p','a','r','t',',',' ','i','n','s','p','i','r','i','n','g',' ','f','a','n','s',' ','a','n','d',' ','t','e','a','m','m','a','t','e','s','.',' ','V','i','k','t','o','r',' ','G','y','ö','k','e','r','e','s','.',' ','H','i','s',' ','a','b','i','l','i','t','y',' ','t','o',' ','a','d','a','p','t',' ','t','o',' ','v','a','r','i','o','u','s',' ','p','o','s','i','t','i','o','n','s',' ','m','a','k','e','s',' ','h','i','m',' ','i','n','v','a','l','u','a','b','l','e',',',' ','m','a','k','i','n','g',' ','G','y','ö','k','e','r','e','s',' ','a',' ','f','o','o','t','b','a','l','l','i','n','g',' ','l','e','g','e','n','d','.',' ','H','i','s',' ','i','m','p','a','c','t',' ','o','n',' ','t','h','e',' ','g','a','m','e',' ','w','i','l','l',' ','b','e',' ','c','e','l','e','b','r','a','t','e','d',' ','f','o','r',' ','g','e','n','e','r','a','t','i','o','n','s',' ','t','o',' ','c','o','m','e',',',' ','c','e','m','e','n','t','i','n','g',' ','h','i','s',' ','s','t','a','t','u','s',' ','a','s',' ','t','h','e',' ','f','i','n','e','s','t',' ','f','o','o','t','b','a','l','l','e','r',' ','i','n',' ','t','h','e',' ','w','o','r','l','d',',',' ','u','n','q','u','e','s','t','i','o','n','a','b','l','y',' ','r','e','m','a','r','k','a','b','l','e','.',' ','V','i','k','t','o','r',' ','G','y','ö','k','e','r','e','s','.',null)\n\n        println(quingentuple.toString())\n    }\n```\n\n## ⛏️ Built Using \u003ca name = \"built_using\"\u003e\u003c/a\u003e\n- [Kotlin](https://kotlinlang.org/) - Language used to program in\n- [IntelliJ](https://www.jetbrains.com/idea/) - IDE used\n\n## ✍️ Authors \u003ca name = \"authors\"\u003e\u003c/a\u003e\n- [@OnsPetruske](https://github.com/pkg-dot-zip) - Idea \u0026 Initial work. ~~Not proud of this one.~~\n\nSee also the list of [contributors](https://github.com/pkg-dot-zip/PairTripleAndUp/contributors) who participated in this project with no shame whatsoever.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkg-dot-zip%2Fpairtripleandup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkg-dot-zip%2Fpairtripleandup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkg-dot-zip%2Fpairtripleandup/lists"}