Skip to content

weak, structs: add comprehensive example functions#79056

Open
mrbishalbaniya wants to merge 1 commit intogolang:masterfrom
mrbishalbaniya:add-weak-examples
Open

weak, structs: add comprehensive example functions#79056
mrbishalbaniya wants to merge 1 commit intogolang:masterfrom
mrbishalbaniya:add-weak-examples

Conversation

@mrbishalbaniya
Copy link
Copy Markdown

This commit adds example functions to the weak and structs packages to improve documentation and demonstrate usage patterns.

weak package examples:

  • Example: Basic weak pointer usage
  • ExampleMake: Creating weak pointers
  • ExampleMake_nil: Creating weak pointers from nil
  • ExamplePointer_Value: Accessing weak pointer values
  • ExamplePointer_Value_garbageCollected: Behavior after GC
  • Example_cache: Implementing a cache with weak pointers
  • Example_canonicalization: String interning pattern
  • Example_lifetimeTying: Tying object lifetimes together
  • Example_equality: Weak pointer equality semantics

structs package examples:

  • ExampleHostLayout: Basic HostLayout usage for C compatibility
  • Example_cInterop: C struct interoperability
  • Example_nestedStructs: HostLayout scope behavior
  • Example_aliasing: Using HostLayout aliases

These examples demonstrate practical use cases including caches, canonicalization maps, lifetime management, and C interoperability.

This PR will be imported into Gerrit with the title and first
comment (this text) used to generate the subject and body of
the Gerrit change.

Please ensure you adhere to every item in this list.

More info can be found at https://github.com/golang/go/wiki/CommitMessage

  • The PR title is formatted as follows: net/http: frob the quux before blarfing
    • The package name goes before the colon
    • The part after the colon uses the verb tense + phrase that completes the blank in,
      "This change modifies Go to ___________"
    • Lowercase verb after the colon
    • No trailing period
    • Keep the title as short as possible. ideally under 76 characters or shorter
  • No Markdown
  • The first PR comment (this one) is wrapped at 76 characters, unless it's
    really needed (ASCII art, table, or long link)
  • If there is a corresponding issue, add either Fixes #1234 or Updates #1234
    (the latter if this is not a complete fix) to this comment
  • If referring to a repo other than golang/go you can use the
    owner/repo#issue_number syntax: Fixes golang/tools#1234
  • We do not use Signed-off-by lines in Go. Please don't add them.
    Our Gerrit server & GitHub bots enforce CLA compliance instead.
  • Delete these instructions once you have read and applied them

This commit adds example functions to the weak and structs packages
to improve documentation and demonstrate usage patterns.

weak package examples:
- Example: Basic weak pointer usage
- ExampleMake: Creating weak pointers
- ExampleMake_nil: Creating weak pointers from nil
- ExamplePointer_Value: Accessing weak pointer values
- ExamplePointer_Value_garbageCollected: Behavior after GC
- Example_cache: Implementing a cache with weak pointers
- Example_canonicalization: String interning pattern
- Example_lifetimeTying: Tying object lifetimes together
- Example_equality: Weak pointer equality semantics

structs package examples:
- ExampleHostLayout: Basic HostLayout usage for C compatibility
- Example_cInterop: C struct interoperability
- Example_nestedStructs: HostLayout scope behavior
- Example_aliasing: Using HostLayout aliases

These examples demonstrate practical use cases including caches,
canonicalization maps, lifetime management, and C interoperability.
@google-cla
Copy link
Copy Markdown

google-cla Bot commented Apr 30, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant