The must library simplifies assertions and panics on failure. Assert conditions directly, avoiding long checks
- Simple Error Handling: Assert conditions directly, avoiding long checks.
- Quick Feedback: Catch bugs early with clear panic messages.
- Lightweight & Fast: Minimal code overhead for speed. Very easy to use.
- Versatile Assertions: Supports checking non-zero values, slice lengths.
go get github.com/yyle88/must
package main
import (
"github.com/yyle88/must"
)
func main() {
value := 42
must.Nice(value) // Panics if value is zero
println("Value is valid:", value)
}
package main
import (
"errors"
"github.com/yyle88/must"
)
func main() {
err := someFunction()
must.Done(err) // Panics if err is not nil
println("No error encountered!")
}
func someFunction() error {
return errors.New("unexpected error")
}
package main
import (
"github.com/yyle88/must"
)
func main() {
arr := []int{1, 2, 3}
must.Length(arr, 3) // Panics if the length is not 3
println("Array length is correct")
}
Here are the core assertions in must
, summarized in a table:
Function | Description | Example | Notes |
---|---|---|---|
True(v bool) |
Panics if v is false. |
must.True(isValid) |
Validates if v is true . |
Done(err error) |
Panics if err is not nil. |
must.Done(err) |
Ensures no error occurred. |
Must(err error) |
Panics if err is not nil. |
must.Must(err) |
Similar to Done . |
Nice(a V) |
Panics if a is zero. |
must.Nice(value) |
Ensures a is non-zero. |
Zero(a V) |
Panics if a is not zero. |
must.Zero(value) |
Ensures a is zero. |
None(a V) |
Panics if a is non-zero. |
must.None(value) |
Ensures a is zero. |
Null(v any) |
Panics if v is not nil . |
must.Null(ptr) |
Ensures v is nil . |
Full(v any) |
Panics if v is nil . |
must.Full(value) |
Ensures v is non-nil . |
Equals(a, b V) |
Panics if a and b are not equal. |
must.Equals(a, b) |
Checks if a equals b . |
Same(a, b V) |
Panics if a and b are not equal. |
must.Same(a, b) |
Alias of Equals . |
Is(a, b V) |
Panics if a and b are not equal. |
must.Is(a, b) |
Alias of Equals . |
Ise(err, target error) |
Panics if err does not match target using errors.Is . |
must.Ise(err, targetErr) |
Error matching similar to errors.Is . |
Ok(a V) |
Panics if a is zero. |
must.Ok(value) |
Ensures a is non-zero. |
OK(a V) |
Alias of Ok , checks for non-zero value. |
must.OK(value) |
Similar to Ok . |
TRUE(v bool) |
Panics if v is false. |
must.TRUE(isValid) |
Alias of True . |
FALSE(v bool) |
Panics if v is true. |
must.FALSE(isError) |
Ensures v is false . |
False(v bool) |
Panics if v is true. |
must.False(isError) |
Similar to FALSE . |
Have(a []T) |
Panics if a is empty. |
must.Have(slice) |
Ensures a is not empty. |
Length(a []T, n int) |
Panics if a length is not n . |
must.Length(slice, 3) |
Ensures a length is n . |
Len(a []T, n int) |
Alias of Length , ensures a length is n . |
must.Len(slice, 3) |
Validates a length. |
In(v T, a []T) |
Panics if v is not in a . |
must.In(value, slice) |
Ensures v is in a . |
Contains(a []T, v T) |
Panics if a does not contain v . |
must.Contains(slice, value) |
Ensures a contains v . |
MIT License. See LICENSE.
Contributions are welcome! To contribute:
- Fork the repo on GitHub (using the webpage interface).
- Clone the forked project (
git clone https://github.com/yourname/repo-name.git
). - Navigate to the cloned project (
cd repo-name
) - Create a feature branch (
git checkout -b feature/xxx
). - Stage changes (
git add .
) - Commit changes (
git commit -m "Add feature xxx"
). - Push to the branch (
git push origin feature/xxx
). - Open a pull request on GitHub (on the GitHub webpage).
Please ensure tests pass and include relevant documentation updates.
Welcome to contribute to this project by submitting pull requests and reporting issues.
If you find this package valuable, give me some stars on GitHub! Thank you!!!
Thank you for your support!
Happy Coding with this package! 🎉
Give me stars. Thank you!!!