weekdaze-0.0.0.1: A school-timetable problem-solver.

Safe HaskellNone
LanguageHaskell2010

WeekDaze.Data.Resource

Contents

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION
  • An abstract description of the properties common to students, teachers or locations.
  • Currently just their availability, but in principle other common facets of these entities may be added as they're discovered.
  • The simultaneous availability of largely arbitrary collections of tuples can also be determined.
Synopsis

Type-classes

class Resource resource where Source #

Describes a finite resource, or group of finite resources.

Minimal complete definition

getAvailability

Methods

getAvailability Source #

Arguments

:: resource 
-> Availability

The set of days on which the resources are all regularly available to be booked.

isAvailableOn Source #

Arguments

:: Day 
-> resource 
-> Bool

True if on the specified day, all resources are regularly scheduled to be available.

Instances
Resource resource => Resource [resource] Source # 
Instance details

Defined in WeekDaze.Data.Resource

Methods

getAvailability :: [resource] -> Availability Source #

isAvailableOn :: Day -> [resource] -> Bool Source #

Resource resource => Resource (Set resource) Source # 
Instance details

Defined in WeekDaze.Data.Resource

Methods

getAvailability :: Set resource -> Availability Source #

isAvailableOn :: Day -> Set resource -> Bool Source #

Resource (Profile campus) Source # 
Instance details

Defined in WeekDaze.Data.Location

(Resource a, Resource b) => Resource (a, b) Source # 
Instance details

Defined in WeekDaze.Data.Resource

Methods

getAvailability :: (a, b) -> Availability Source #

isAvailableOn :: Day -> (a, b) -> Bool Source #

Resource resource => Resource (Map k resource) Source # 
Instance details

Defined in WeekDaze.Data.Resource

Methods

getAvailability :: Map k resource -> Availability Source #

isAvailableOn :: Day -> Map k resource -> Bool Source #

(Resource a, Resource b, Resource c) => Resource (a, b, c) Source # 
Instance details

Defined in WeekDaze.Data.Resource

Methods

getAvailability :: (a, b, c) -> Availability Source #

isAvailableOn :: Day -> (a, b, c) -> Bool Source #

Resource (Profile level stream teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Student

Methods

getAvailability :: Profile level stream teachingRatio -> Availability Source #

isAvailableOn :: Day -> Profile level stream teachingRatio -> Bool Source #

Resource (Profile synchronisationId level timeslotId locationId teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Teacher

Methods

getAvailability :: Profile synchronisationId level timeslotId locationId teachingRatio -> Availability Source #

isAvailableOn :: Day -> Profile synchronisationId level timeslotId locationId teachingRatio -> Bool Source #

Types

Type-synonyms

type ResourceMap resourceId resource = Map resourceId resource Source #

Describes a map indexed by unique resource-identifiers.

Functions

countDaysPerWeekAvailable :: Resource resource => resource -> NDays Source #

The number of days in any week, on which all the resources are simultaneously available.

isAvailable :: Resource resource => resource -> Bool Source #

True if on any day, all the resources are regularly scheduled to be simultaneously available.

extractAvailableResources :: Resource resource => Day -> ResourceMap resourceId resource -> ResourceMap resourceId resource Source #

Extract those resources from the map provided, which are available on the specified day.