11import random
22from collections import Optional
33from memory import UnsafePointer, memcpy, memset_zero
4- from gridv1 import Grid as Grid1
5-
4+ from gridv1 import Grid as GridV1
65
76struct Grid (Stringable , Writable ):
87 var data : UnsafePointer[UInt8]
@@ -14,6 +13,15 @@ struct Grid(Stringable, Writable):
1413 self .cols = cols
1514 self .data = UnsafePointer[UInt8].alloc(rows * cols)
1615
16+ fn __init__ (out self , source : GridV1):
17+ rows = len (source.data)
18+ cols = len (source.data[0 ])
19+ self = Self(rows, cols)
20+ for row in range (rows):
21+ for col in range (cols):
22+ value = UInt8(source[row, col])
23+ (self .data + row * cols + col)[] = value
24+
1725 fn __copyinit__ (out self , existing : Self):
1826 self .rows = existing.rows
1927 self .cols = existing.cols
@@ -104,14 +112,9 @@ fn run(owned grid: Grid) raises -> None:
104112
105113
106114fn main () raises -> None :
107- grid1 = Grid.new(None , 16 , 16 )
108- print (" s1: \n " )
109- print (grid1)
110- grid = Grid.new(None , 0 , 0 )
111- g = grid.__moveinit__(grid1^ )
112- print (" s2: \n " )
113- print (g)
114- # run(grid)
115- grid1 = g.__copyinit__(g)
116- print (" s3: \n " )
117- print (grid1)
115+ grid_1 = GridV1.new(16 , 16 )
116+ # run(grid_1)
117+ print (grid_1)
118+ print (" Implicit conversion\n\n " )
119+ grid_2 = Grid(grid_1)
120+ print (grid_2)
0 commit comments