Safe Haskell | None |
---|
A type for profile preferences. These preference values are used by both Firefox and Opera profiles.
- data Profile b = Profile {}
- newtype PreparedProfile b = PreparedProfile ByteString
- data ProfilePref
- = PrefInteger !Integer
- | PrefDouble !Double
- | PrefString !Text
- | PrefBool !Bool
- class ToPref a where
- toPref :: a -> ProfilePref
- getPref :: Text -> Profile b -> Maybe ProfilePref
- addPref :: ToPref a => Text -> a -> Profile b -> Profile b
- deletePref :: Text -> Profile b -> Profile b
- addExtension :: FilePath -> Profile b -> Profile b
- deleteExtension :: FilePath -> Profile b -> Profile b
- newtype ProfileParseError = ProfileParseError String
Documentation
This structure allows you to construct and manipulate profiles in pure code, deferring execution of IO operations until the profile is "prepared". This type is shared by both Firefox and Opera profile code; when a distinction must be made, the phantom type parameter is used to differentiate.
Profile | |
|
newtype PreparedProfile b Source
Represents a profile that has been prepared for network transmission. The profile cannot be modified in this form.
Eq (PreparedProfile b) | |
Show (PreparedProfile b) | |
ToJSON (PreparedProfile s) | |
FromJSON (PreparedProfile s) |
data ProfilePref Source
A profile preference value. This is the subset of JSON values that excludes arrays, objects, and null.
A typeclass to convert types to profile preference values
toPref :: a -> ProfilePrefSource
getPref :: Text -> Profile b -> Maybe ProfilePrefSource
Retrieve a preference from a profile by key name.
addPref :: ToPref a => Text -> a -> Profile b -> Profile bSource
Add a new preference entry to a profile, overwriting any existing entry with the same key.
deletePref :: Text -> Profile b -> Profile bSource
Delete an existing preference entry from a profile. This operation is silent if the preference wasn't found.
addExtension :: FilePath -> Profile b -> Profile bSource
Add a new extension to the profile. The file path should refer to an .xpi file or an extension directory. This operation has no effect if the same extension has already been added to this profile.
deleteExtension :: FilePath -> Profile b -> Profile bSource
Delete an existing extension from the profile. The file path should refer to an .xpi file or an extension directory. This operation has no effect if the extension was never added to the profile.
newtype ProfileParseError Source
An error occured while attempting to parse a profile's preference file.