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/groups/v0

Package
Open in gnoweb ↗

Overview

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

Files (8)

  • README.mdmarkdown
  • gnomod.tomltoml
  • doc.gnogno
  • group.gnogno
  • readonly.gnogno
  • role.gnogno
  • groups_test.gnogno
  • z_readme_filetest.gnogno
  • readonly.gnogno
    1package groups23import "gno.land/p/moul/addrset/v0"45// ReadonlyRole is a read-only view of a Role. It exposes only read-side6// methods and holds the *Role in an unexported field, so cross-package7// callers cannot mutate the role through this type.

    Functions

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

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

    8
    type ReadonlyRole struct {
    9 role *Role
    10}
    11
    12// Name returns the role's name.
    13func (rr ReadonlyRole) Name() string {
    14 return rr.role.name
    15}
    16
    17// Members returns a read-only view of the role's member set.
    18func (rr ReadonlyRole) Members() *addrset.ReadonlySet {
    19 return rr.role.members.Readonly()
    20}
    21
    22// Meta returns the role's metadata slot.
    23//
    24// NOTE: a mutable pointer stored in meta is NOT protected by this readonly
    25// view — the pointee remains mutable by anyone who retrieves it. See the
    26// package doc.
    27func (rr ReadonlyRole) Meta() any {
    28 return rr.role.meta
    29}
    30
    31// ReadonlyGroup is a read-only view of a Group. Every method mirrors the
    32// read-side of Group; mutators are absent. It holds the *Group in an
    33// unexported field, so cross-package callers cannot mutate through it.
    34type ReadonlyGroup struct {
    35 group *Group
    36}
    37
    38// --- Base set (base only) ---
    39
    40// Has reports whether addr is in the base set (roles not consulted).
    41func (rg ReadonlyGroup) Has(addr address) bool {
    42 return rg.group.Has(addr)
    43}
    44
    45// Size returns the number of addresses in the base set only.
    46func (rg ReadonlyGroup) Size() int {
    47 return rg.group.Size()
    48}
    49
    50// Iterate walks the base set (only); see Group.Iterate.
    51func (rg ReadonlyGroup) Iterate(offset, count int, fn func(addr address) bool) (stopped bool) {
    52 return rg.group.Iterate(offset, count, fn)
    53}
    54
    55// --- Role registry ---
    56
    57// GetRole returns a read-only view of the named role if it exists.
    58func (rg ReadonlyGroup) GetRole(name string) (rr *ReadonlyRole, found bool) {
    59 r, ok := rg.group.GetRole(name)
    60 if !ok {
    61 return nil, false
    62 }
    63 return r.Readonly(), true
    64}
    65
    66// HasRole reports whether a role with the given name exists.
    67func (rg ReadonlyGroup) HasRole(name string) bool {
    68 return rg.group.HasRole(name)
    69}
    70
    71// RoleCount returns the number of registered roles.
    72func (rg ReadonlyGroup) RoleCount() int {
    73 return rg.group.RoleCount()
    74}
    75
    76// IterateRoles walks roles in name order; see Group.IterateRoles.
    77func (rg ReadonlyGroup) IterateRoles(offset, count int, fn func(*ReadonlyRole) bool) (stopped bool) {
    78 return rg.group.IterateRoles(offset, count, fn)
    79}
    80
    81// --- Aggregations ---
    82
    83// HasAny reports whether addr is in the base set OR in any role.
    84func (rg ReadonlyGroup) HasAny(addr address) bool {
    85 return rg.group.HasAny(addr)
    86}
    87
    88// TotalSize returns the deduplicated count across base + all roles.
    89func (rg ReadonlyGroup) TotalSize() int {
    90 return rg.group.TotalSize()
    91}
    92
    93// IterateAll walks every distinct address across base + all roles; see
    94// Group.IterateAll.
    95func (rg ReadonlyGroup) IterateAll(offset, count int, fn func(addr address) bool) (stopped bool) {
    96 return rg.group.IterateAll(offset, count, fn)
    97}
    98
    99// RolesContaining returns the names of all roles containing addr, in name
    100// order; see Group.RolesContaining.
    101func (rg ReadonlyGroup) RolesContaining(addr address) []string {
    102 return rg.group.RolesContaining(addr)
    103}
    104