{"id":17520386,"url":"https://github.com/alirezasariri78/rs-abbreviation-number","last_synced_at":"2025-04-23T15:25:08.189Z","repository":{"id":234153228,"uuid":"787900614","full_name":"alirezasariri78/rs-abbreviation-number","owner":"alirezasariri78","description":"Abbreviate numbers in Rust","archived":false,"fork":false,"pushed_at":"2024-09-14T07:26:00.000Z","size":105,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-14T08:49:09.623Z","etag":null,"topics":["abbreviations","metric","number","prefix","prefix-number"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/alirezasariri78.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-17T11:56:52.000Z","updated_at":"2024-09-14T07:26:03.000Z","dependencies_parsed_at":"2025-03-06T13:31:46.948Z","dependency_job_id":null,"html_url":"https://github.com/alirezasariri78/rs-abbreviation-number","commit_stats":null,"previous_names":["alirezasariri78/rs-abbreviation-number"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alirezasariri78%2Frs-abbreviation-number","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alirezasariri78%2Frs-abbreviation-number/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alirezasariri78%2Frs-abbreviation-number/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alirezasariri78%2Frs-abbreviation-number/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alirezasariri78","download_url":"https://codeload.github.com/alirezasariri78/rs-abbreviation-number/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250458636,"owners_count":21433911,"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":["abbreviations","metric","number","prefix","prefix-number"],"created_at":"2024-10-20T11:04:43.918Z","updated_at":"2025-04-23T15:25:08.165Z","avatar_url":"https://github.com/alirezasariri78.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"## **Abbreviate or Unabbreviate numbers in rust**\n\n## For Numbers Less Then 1\n|     Input                   |    Output    |\n|-----------------------------|--------------|\n|         0.1           |     100m       |\n|         0.01           |     10m       |\n|         0.001           |     1m       |\n|         0.000_000_001           |     1n       |\n|         0.000_000_000_000_000_000_000_000_000_1           |     100q       |\n\n\n## For Numbers Greater Then 1\n|     Input                   |    Output    |\n|-----------------------------|--------------|\n|         1_000               |     1K       |\n|         1_000_000           |     1M       |\n|         1_090               |     1.09K    |\n|         001_090               |     1.09K    |\n| 123_000_000_000_000_000_000 |     123E     |\n| -123_000_000_000_000_000_000 |     -123E     |\n| 1_000_000_000_000_000_000_000_000_000_000 |     1Q     |\n\n\n\n\n|     Input                   |    Output    |\n|-----------------------------|--------------|\n|         1K               |     1000       |\n|         1.09K           |     1090      |\n|         1_090               |     1.09K    |\n|      123E     |123_000_000_000_000_000_000|\n|      1Q     |1_000_000_000_000_000_000_000_000_000_000|\n\n\n## Usage Example :\n\n```rust\n\nfn main() {\n\n    // numbers greater then 1:\n    println!(\"{}\", 123.abbreviate_number(\u0026Default::default())); // result: 123\n    println!(\"{}\", 123_000.0.abbreviate_number(\u0026Default::default())); //result: 123K\n\n    println!(\"{}\", \"1K\".unabbreviate_number(\u0026Default::default())); //result: 1000.0\n    println!(\"{}\", \"1M\".unabbreviate_number(\u0026Default::default())); //result: 1000000.0\n\n    // numbers less then 1:\n    println!(\"{}\", (0.1).abbreviate_number(\u0026Default::default())); // result: 100m\n    println!(\"{}\",(0.000_000_001).abbreviate_number(\u0026Default::default())); //result: 1n\n\n    println!(\"{}\", \"111z\".unabbreviate_number(\u0026Default::default())); // result : 0.000000000000000000111\n    println!(\"{}\", \"100n\".unabbreviate_number(\u0026Default::default())); // result : 0.0000001\n\n}\n\n```\n\n## Also For Big Int Numbers: \n```rust\nfn main() {\n    let big_num: i128 = 999_509_999_999_999_000_123_123_000_000_123;\n    println!(\"{}\", big_num.abbreviate_number(\u0026Default::default())); // result : 999.5Q\n}\n\n```\n\n## Customize Format:\n```rust\nfn main(){\n assert_eq!(\n            \"100-q\",\n            (0.000_000_000_000_000_000_000_000_000_1).abbreviate_number(\u0026AbbreviationOptions {\n                padding: 0,\n                separator: \"-\".to_string()\n            })\n        );\n\n assert_eq!(\n            \"-100   q\",\n            (-0.000_000_000_000_000_000_000_000_000_1).abbreviate_number(\u0026AbbreviationOptions {\n                padding: 3,\n                ..Default::default()\n            })\n        );\n}\n```\n\n## Time Estimate: \n```rust\nuse rs_abbreviation_number::time::*;\nfn main() {\n    let seconds=Time::from_second(34_536_000);\n    assert_eq!(1,seconds.get_year());\n    assert_eq!(12,seconds.get_month());\n\n    let hours=Time::from_hour(9593);\n    assert_eq!(1,hours.get_year());\n    assert_eq!(12,hours.get_month());\n    assert_eq!(360,hours.get_day());\n}\n\n```\n\n## Note:\n- Symbols Are Case-Sensitive And\n- Program Will Automaticly Remove Leading Zero (001 Will Become 1 and etc)\n- Time Estimation Is Not As Accurate As The Name Suggests And It May Differ From The Exact Value\n\n\n\n## Table Of Metric Prefix:\n\n|     Symbol                   |    Base    |\n|-----------------------------|--------------|\n|      q                |      $`10^ {-30}`$   |\n|     r                 |      $`10^ {-27}`$   |\n|     y                 |      $`10^ {-24}`$  |\n|     z                 |      $`10^ {-21}`$   |\n|     a                 |      $`10^ {-18}`$   |\n|      f                 |      $`10^ {-15}`$  |\n|             p          |      $`10^ {-12}`$ |\n|         n               |     $`10^ {-9}`$    |\n|         μ              |      $`10^ {-6}`$      |\n|         m               |     $`10^ {-3}`$       |\n|                     |      $`10^{0}`$   |\n|         K               |     $`10^{3}`$       |\n|         M               |      $`10^ {6}`$      |\n|         G               |     $`10^ {9}`$    |\n|      T                 |      $`10^ {12}`$ |\n|      P                 |      $`10^ {15}`$  |\n|      E                 |      $`10^ {18}`$   |\n|      Z                 |      $`10^ {21}`$   |\n|      Y                 |      $`10^ {24}`$  |\n|      R                 |      $`10^ {27}`$   |\n|      Q                 |       $`10^{30}`$    |\n\n\n\n ## TODO :\n```[tasklist]\n- [ ] Optimize Code\n- [ ] Create Custom Symbols \n- [x] Custom separator pass by option\n- [ ] Create Unit Conversion \n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falirezasariri78%2Frs-abbreviation-number","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falirezasariri78%2Frs-abbreviation-number","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falirezasariri78%2Frs-abbreviation-number/lists"}