Description
With #257 we implemented mask usage. Furthermore, we can prevent people from going to certain locations, however, we do not yet have a universal and clear InterventionScheme
.
The problem with the current implementation of Masks is:
- You cannot require "no mask" as MaskType = None is not implemented.
- If MaskType = None was implemented, then "time_used" would be reset and everything I would reuse my previous mask, time would start from zero. This could be "solved" by having two mask_types
m_current
andm_preference
. The current could be None and time_used would point to preference if no mask is worn at the moment. But this is not very elegant. - Another problem is that for each contact reduction intervention, like
reduced maximum capacity
,minimal_distance
or so, we would need at least one other member variable.
From 1.-3. I came to the idea that we would maybe template the location as
template<typename... LocalInterventions>
class Location
{
// ...
};
and then I could maybe have
Location<Masks>
or Location<Masks, MinimalDistance>
where only the considered interventions are in the list. When designing this step by step it just came to my head that we cannot only use the active NPIs in the list since this will be set a compile time. So we would then maybe even need start and end dates for the interventions...
However, I have no good design / idea on the remaining part of this proposed change.
Maybe we also go with an InterventionScheme
as the TestingScheme
which is on Locations and ...
Originally posted by @mknaranja in #471 (comment)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status