To me, this function is one of the main reasons I'm not using Access more often. I guess I'm a bit confused about the design of `Access` - I'd sort of guess that the goal would be to largely have feature parity with keyword lists and maps when it comes to reading values at least. I think if we wanted to up the usage of Access (which imo would be a good thing) then that'd be great.
As per usual, I do trust your judgement on these though. On Wed, Jul 31, 2024 at 8:28 PM José Valim <jose.va...@dashbit.co> wrote: > I see. It seems to be a narrow use case for now, so I think Access.fetch/2 > is the way to go until we get more evidence that many folks need something > similar. My impression is that the direct Access functions are not that > commonly used in general. :) > > On Wed, Jul 31, 2024 at 8:23 PM Tobias Pfeiffer <prag...@gmail.com> wrote: > >> Heyo José, >> >> in most cases it's just a helper method with optional args - which I like >> to keep in a way that users of it can user either a map or keyword args. >> >> In this particular case it was this helper for tests: >> >> @supply_tag 744_306 >> def my_helper(opts \\ []) do >> query_string = Keyword.get_lazy(opts, :query_string, &build_query_string/ >> 0) >> supply_tag = Access.get(opts, :supply_tag, @supply_tag) >> ip = Access.get(opts, :ip, "68.235.110.20") >> >> "https://some.url#{supply_tag}#{query_string}&ip=#{ip}" >> end >> >> build_query_string/0 takes some time but not a lot - but it could also >> take more time aka the classical get_lazy/3 use case. >> >> Using Keyword.get_lazy/3 here works but limits callers to use keywords >> (or do a Map to Keyword conversion) which limits the usefulness of `Access` >> to me - as I tend to prefer to use it when both maps and keyword lists seem >> acceptable. >> >> Cheers + thanks, >> Tobi >> On Wed, Jul 31, 2024 at 8:39 AM José Valim <jose.va...@dashbit.co> wrote: >> >>> Hi Tobi, can you provide some context of how it would be used, code >>> wise? Which problem are you facing? >>> >>> On Wed, Jul 31, 2024 at 08:10 Tobias Pfeiffer <prag...@gmail.com> wrote: >>> >>>> Hello beloved core team, >>>> >>>> TLDR; Should we have Access.get_lazy/3 ? >>>> >>>> As usual I'm sure there is some reason why this doesn't exist yet but I >>>> don't know so here is the question/proposal: >>>> >>>> We have Map.get_lazy/3 and Keyword.get_lazy/3 - they're amazing and >>>> helpful. Access basically encapsulates the 2 and I generally use it where I >>>> can to allow both Keywords and Maps - most commonly when I deal with >>>> options. It doesn't have get_lazy/3 though, which sometimes makes me fall >>>> back to either Map or Keyword (or wrap it myself). >>>> >>>> Using Access.fetch/2 it should also be easy to implement. >>>> >>>> So, would a PR implementing Access.get_lazy/3 be considered? >>>> >>>> Thanks! >>>> Tobi >>>> >>>> -- >>>> 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/CAG3Z5YQYuv8SF81vs8UNhtpGN3wA0NHgH1yFhixuwoQmV2S8eQ%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAG3Z5YQYuv8SF81vs8UNhtpGN3wA0NHgH1yFhixuwoQmV2S8eQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> 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/CAGnRm4L6popY-tMX54mKh3kc_cbmYRa7G7G0Em64ZPUoZEX6Lw%40mail.gmail.com >>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4L6popY-tMX54mKh3kc_cbmYRa7G7G0Em64ZPUoZEX6Lw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> 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/CAG3Z5YTOA%2Buditq5jfHETFNanUwT_fXsnjt-S%2BnekqCJcp_20A%40mail.gmail.com >> <https://groups.google.com/d/msgid/elixir-lang-core/CAG3Z5YTOA%2Buditq5jfHETFNanUwT_fXsnjt-S%2BnekqCJcp_20A%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > 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/CAGnRm4JNXRH4S1793uBJ-Dvv_zbVvLC0gw32vJrzw-dOyukfUg%40mail.gmail.com > <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JNXRH4S1793uBJ-Dvv_zbVvLC0gw32vJrzw-dOyukfUg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- 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/CAG3Z5YRF%3DJj0sKLnpSEJ4zKMU%3DT6JGU7Qh2bNdZ90Qt-6%3DhbqA%40mail.gmail.com.