Skip to content

Instantly share code, notes, and snippets.

@modularbot
Created April 26, 2024 05:56
Show Gist options
  • Save modularbot/992918b81c23a3202d6a76dff332641d to your computer and use it in GitHub Desktop.
Save modularbot/992918b81c23a3202d6a76dff332641d 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 display(self) -> None:
print("Entering display function")
print(str(self))
print("Exiting display function")
fn main() -> None:
var demo_obj_1 = DemoStruct(42)
demo_obj_1.display()
demo_obj_1.display()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment