Antoine Fabri
Antoine Fabri
the `opts` arg should really be a named list, named with the class, collecting the opts_*()
> Why not opts_environment("predefine") I think I considered it, but it's not really a constructor, it's just a way to avoid recursion issues, and it breaks the general principle in...
I agree that the current behavior is not satisfying, "predefine" as a constructor makes sense to me in hindsight, I'll give it a bit more thought and fix if I...
``` r library(constructive) library(dplyr) con new( #> "SQLiteConnection" |> #> structure(package = "RSQLite"), #> ptr = constructive::external_pointer("0x10e708290"), #> dbname = "", #> loadable.extensions = TRUE, #> flags = 70L, #>...
I'm not sure if I want the overhead of defining an opt function for every class just for this, it clutters the list of opts_ functions and adds boiler plate....
What about this : * Every custom method must be associated to an `opts_?()` function BUT * `?construct()` mentions it and enumerates only those that have either : * Other...
If we have a "next" constructor for every class, falling back on next method, and a way to use next whenever available^, i.e everywhere except on the lowest constructors, for...
Let's generalise it a bit : * construct() chooses the highest level constructor as possible, so it means it's not stable, if the package evolves, some outputs might change *...
This requires tweaking. We don't want to map `identity` to `force`, or `FALSE` to `F`.
This might be done with the "data" arg, I'm not sure we need more, we still need though to : * special case "base" * find a place_holder for all...