Hey Unlike structs there's no guarantee that two records won't be defined with the same name, they are scoped within modules.
Cheers, Louis On Sun, 16 Dec 2018 at 13:55 Allen Madsen <allen.c.mad...@gmail.com> wrote: > Couldn't you define a method like __record_keys__/0 on the atom in the > defrecord call? > > Allen Madsen > http://www.allenmadsen.com > > > On Sat, Dec 15, 2018 at 11:49 AM <wojtek.m...@plataformatec.com.br> wrote: > >> One way to avoid issues with state is to avoid... state. Maybe we'd >> configure it like this: >> >> records = [ >> # explicit >> {:column_definition, [:name, :type]}, >> >> # grabs record fields from record macro in that module, e.g: >> resultset(resultset()) |> Keyword.keys() >> {Records, :resultset} >> ] >> >> IEx.configure(inspect: [records: records]) >> ExUnit.configure(inspect: [records: records]) >> >> This is less convenient, but I guess sometimes we may prefer the "tuple" >> representation so by making this opt-in we cater to that use case as well. >> >> On Saturday, December 15, 2018 at 5:08:13 PM UTC+1, >> wojte...@plataformatec.com.br wrote: >>> >>> Hello, >>> I'd like to discuss support for Inspect protocol for records. I created >>> a proof-of-concept here: https://github.com/wojtekmach/record_inspect >>> >>> Basically, for these records: >>> >>> defrecord :resultset [ >>> :column_count, >>> :column_definitions, >>> :row_count, >>> :rows, >>> :warning_count, >>> :status_flags >>> ] >>> >>> defrecord :column_definition41, [:name, :type] >>> >>> Instead of: >>> >>> {:resultset, 2, >>> [{:column_definition41, "2*3", 8}, {:column_definition41, "4*5", 8}], 1 >>> , >>> [[6, 20]], 0, 2} >>> >>> We could get this: >>> >>> #resultset([ >>> column_count: 2, >>> column_definitions: [ >>> #column_definition41([name: "2*3", type: 8]), >>> #column_definition41([name: "4*5", type: 8]) >>> ], >>> row_count: 1, >>> rows: [[6, 20]], >>> warning_count: 0, >>> status_flags: 2 >>> ]) >>> >>> My proof-of-concept uses the new `:persistent_term` facility in OTP 21.2 >>> just to get something working. Managing the state is challenging for >>> potentially including this in Elixir. >>> >>> Feedback appreciated! >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to elixir-lang-core+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/8e936469-e806-46f9-b4a4-3aa3c577d205%40googlegroups.com >> <https://groups.google.com/d/msgid/elixir-lang-core/8e936469-e806-46f9-b4a4-3aa3c577d205%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to elixir-lang-core+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-core/CAK-y3Ct-2iFCY12qQD07GurkkRepiN3vqaDVgML_7WpHctqLuA%40mail.gmail.com > <https://groups.google.com/d/msgid/elixir-lang-core/CAK-y3Ct-2iFCY12qQD07GurkkRepiN3vqaDVgML_7WpHctqLuA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CABu8xFAA1LjjKE2O16VhmYsA87ykR88FgCa_1hbCJggPA-1pVg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.