ColinFay / gargoyle

Event-Based Structures for 'Shiny'
Other
55 stars 7 forks source link

ASaDev, I want a storage mechanism #12

Open ColinFay opened 1 year ago

ColinFay commented 1 year ago

Let's port of https://github.com/ColinFay/odds here.

With memory storage (cachem), disk storage (qs), and remote (memoise + bank)

ilyaZar commented 1 year ago

Simply copied for now. Two things that came to my mind:

  1. Set self$path to private$path; this is taste, but one might prohibit direct access and work with setters/getters in the public interface to change the path with checks on the correctness/catching typos when changing the path etc.
  2. For adding storage (cachem) and remote memoise + bank either of:
    • make Storage class a skeleton/interface/abstract class with (private) members themselves being R6 classes of the type that is now added (from qs) in #13 and provide access to the other classes (for cachem/memoise+bank) through this interface
    • or, alternatively, define 3 separate R6 classes, one for each task (i.e. skip the interface class)

Since 2. is a design thing, and I have no idea where this is going, let me know the direction @ColinFay , I am happy to help!