PathrockNetwork Gno Explorer
HomeBlocksTransactionsTokensRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/p/nt/ufmt/v0

Package
Open in gnoweb ↗

Overview

Kind
Pure package
Name
v0
Namespace
nt / ufmt
Files
5 (README)(gnomod.toml)
Exported functions
n/a — not supported for pure packages by the node (vm/qfuncs)
Module
gno.land/p/nt/ufmt/v0
gno
0.9

Files (5)

  • README.mdmarkdown
  • gnomod.tomltoml
  • doc.gnogno
  • ufmt.gnogno
  • ufmt_test.gnogno
README.mdPreviewRaw
> **v0 - Unaudited**
> This is an initial version of this package that has not yet been formally audited.
> A fully audited version will be published as a subsequent release.
> Use in production at your own risk.

# `ufmt` - String formatting

Gno port of a subset of Go's `fmt` package (micro-fmt). Provides `Printf`, `Sprintf`, `Errorf` and friends for formatting strings with verb-based templates.

## Usage

```go
import "gno.land/p/nt/ufmt/v0"

s := ufmt.Sprintf("hello %s, you are %d years old", "alice", 30)
// "hello alice, you are 30 years old"

err := ufmt.Errorf("invalid id: %q", input)

var buf bytes.Buffer
ufmt.Fprintf(&buf, "balance: %d", amount)

line := ufmt.Sprintln("token", symbol, "transferred") // adds spaces + newline
```

## API

```go
// Format and return a string.
func Sprint(a ...any) string
func Sprintf(format string, a ...any) string
func Sprintln(a ...any) string

// Format and write to an io.Writer.
func Fprint(w io.Writer, a ...any) (n int, err error)
func Fprintf(w io.Writer, format string, a ...any) (n int, err error)
func Fprintln(w io.Writer, a ...any) (n int, err error)

// Format and print to standard output.
func Print(a ...any) (n int, err error)
func Printf(format string, a ...any) (n int, err error)
func Println(a ...any) (n int, err error)

// Format and append to a byte slice.
func Append(b []byte, a ...any) []byte
func Appendf(b []byte, format string, a ...any) []byte
func Appendln(b []byte, a ...any) []byte

// Format and return an error.
func Errorf(format string, args ...any) error
```

## Supported verbs

| Verb | Meaning                                                                |
|------|------------------------------------------------------------------------|
| `%s` | String. Uses `String()` or `Error()` if implemented.                   |
| `%d` | Integer (signed and unsigned, all widths).                             |
| `%c` | Unicode character from rune/int code point.                            |
| `%t` | Boolean: `true` or `false`.                                            |
| `%q` | Double-quoted, escaped string.                                         |
| `%x` | Hexadecimal (uint8 only).                                              |
| `%f` / `%F` | Decimal float; default precision 6.                             |
| `%e` / `%E` | Scientific notation float; default precision 2.                 |
| `%g` / `%G` | Float, compact representation.                                  |
| `%T` | Type name of the argument (basic types only).                          |
| `%v` | Default representation appropriate for the value's type.               |
| `%%` | Literal `%`.                                                           |

Width (`%5s`) and precision (`%.2f`) are supported for the relevant verbs.

## Notes

- Verb/type mismatches produce `%!verb(type=value)` strings, matching Go's `fmt` behaviour.
- Missing or extra arguments panic.
- Not supported: `%b`, `%o`, `%U`, `%p`, `%+v`, `%#v`, argument indexing, flags like `-`, `+`, `#`, `0`.
- `Print*` writes via the built-in `print` (stdout substitute) until `os.Stdout` is available.

Functions

not supported for pure packages by the node (vm/qfuncs)

Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.