-- | TODO newtypes for everything

module Ssb.Types.Link where

import Ssb.Types.Key

import Data.Aeson

-- | A link to a message.
type MessageLink = String

-- | A link to a feed.
newtype FeedLink = FeedLink { unFeedLink :: PublicKey }
	deriving (Show, Eq, Ord)

instance FromJSON FeedLink where
	parseJSON d = FeedLink <$> parseJSON d

instance ToJSON FeedLink where
	toJSON = toJSON . unFeedLink

-- | A link to a blob.
type BlobLink = String

-- | A link to a message, feed, or blob.
type GenericLink = String