Skip to content

Instantly share code, notes, and snippets.

@modularbot
Created April 26, 2024 05:41
Show Gist options
  • Save modularbot/77eada9dda1ee719d3f04719deffb8b6 to your computer and use it in GitHub Desktop.
Save modularbot/77eada9dda1ee719d3f04719deffb8b6 to your computer and use it in GitHub Desktop.
struct DemoStruct(CollectionElement, Stringable):
var member1: Int
fn __init__(inout self, member1: Int) -> None:
self.member1 = member1
print("Called constructor for " + str(self))
fn __copyinit__(inout self, other: Self) -> None:
self.member1 = other.member1
print("Called copy constructor for " + str(self))
fn __moveinit__(inout self, owned other: Self) -> None:
self.member1 = other.member1
print("Called move constructor for " + str(self))
fn __del__(owned self) -> None:
print("Calling destructor for " + str(self))
fn __str__(self) -> String:
return "DemoStruct(" + str(self.member1) + ")"
fn modify(inout self, new_value: Int) -> None:
print("Entering modify function")
self.member1 = new_value
print("Exiting modify function")
fn main() -> None:
var demo_obj_1 = DemoStruct(42)
demo_obj_1.modify(10)
demo_obj_1.modify(20)
print(demo_obj_1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment