types.gno

0.74 Kb ยท 27 lines
 1package minisocial
 2
 3import (
 4	"std"  // The standard Gno package
 5	"time" // For handling time operations
 6
 7	"gno.land/p/demo/ufmt" // For string formatting, like `fmt`
 8)
 9
10// Post defines the main data we keep about each post
11type Post struct {
12	text      string      // Main text body
13	author    std.Address // Address of the post author, provided by the execution context
14	createdAt time.Time   // When the post was created
15}
16
17// String stringifies a Post
18func (p Post) String() string {
19	out := p.text
20	out += "\n\n"
21	out += ufmt.Sprintf("_by %s_, ", p.author)
22	// We can use `ufmt` to format strings, and the built-in time library formatting function
23	out += ufmt.Sprintf("_on %s_", p.createdAt.Format("02 Jan 2006, 15:04"))
24
25	out += "\n\n"
26	return out
27}