use Red; unit model Red::Driver::SQLite::SQLiteMaster is table<sqlite_master>; has Str $.type is column; has Str $.name is id; has Str $.table is column{:name<tbl_name>, :references(*.name), :model-name(::?CLASS.^name)}; has Int $.root-page is column<rootpage>; has Str $.sql is column; has ::?CLASS @.children is relationship{ .table } method tables(::?CLASS:U:) { self.^all.grep: *.is-table } multi method indexes(::?CLASS:U:) { ::?CLASS.^all.grep: *.is-index } multi method indexes(::?CLASS:D:) { self.children.grep: *.is-index } method is-table { self.type eq "table" } method is-index { self.type eq "index" } method find-table(::?CLASS:U: Str $name) { self.tables.first: *.name eq $name } method find-index(::?CLASS:U: Str $name) { self.indexes.first: *.name eq $name }