sweet

๐Ÿฌ General syntactic sugar

Pure Nim score 15/100 ยท tests present ยท no docs generated

Summary

Latest Version 0.1.3
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:26

Authors

  • madonuko

Installation

nimble install sweet
choosenim install sweet
git clone https://github.com/FyraLabs/sweet

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
sweet โœ“ โœ“ โœ“ - - - - - - -

Dependencies

Package Version Optional
nim >= 2.0.0 No

Source

Repository https://github.com/FyraLabs/sweet
Homepage https://github.com/FyraLabs/sweet
Registry Source nimble_official

README

Sweet: ๐Ÿฌ General syntactic sugar

Sweet is a library that provides syntactic sugar so that it's easier to write code, especially if you come from another programming language!

Suggestions

You can submit suggestions on GitHub.

Examples

import sweet
import std/[math, complex]
import options

assert false == !true
assert !true == not true
assert !1 == false
assert !!PI
assert !""
assert !!"hai"

var a = 1
assert (a := 2) == 2
assert a == 2
assert ++a == 3
assert --a == 2
assert +< a == 2  # same as `a++` in C/++
assert a == 3
assert -< a == 3
assert a == 2


const s = @[0,1,2,3]
assert s[0..-1] == s
assert s[1..-2] == @[1, 2]

type A = object of RootObj
let hai = A()
assert hai is A
assert isinstance(hai, A)
assert (hai.instanceof A) # unfortunately we cannot fully mimic JavaScript

let a = some "hai"
let b = none(string)
assert (a ?? "bai") == "hai"
assert b |? "bai" == "bai"
assert a$.len |? 5 == 3  # Only $ has a higher precedence than + % \ /
assert (b?.len) |? 5 == 5

assert 0b11 << 1 == 0b110
assert 0b10 >> 1 == 0b1
assert 3 // 2 == 1

assert 0b11111100 & 0b01010101 == 0b01010100
assert true && true
assert true || false
assert !(false || false)
assert 0b10101010 | 0b01010101 == 0b11111111

assert "Hello, " + "World!" == "Hello, World!"
assert 'H' + "ello, World!" == "Hello, World!"
assert "hai" + @["bai"] == @["hai", "bai"]
assert @["hai"] + @["bai"] == @["hai", "bai"]

assert almostEqual[float64](complex(10.0, 20.0), complex(10.000_000_000_00_001, 20.000_000_000_00_001))
assert polar(10.0, 20.0) == polar(complex(10.0, 20.0))