Added annex.maxextensionlength for use cases where extensions longer than 4 characters are needed. This commit was sponsored by Henrik Riomar on Patreon.
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			Haskell
		
	
	
	
	
	
{- git-annex key backend data type
 | 
						|
 -
 | 
						|
 - Most things should not need this, using Types instead
 | 
						|
 -
 | 
						|
 - Copyright 2010-2017 Joey Hess <id@joeyh.name>
 | 
						|
 -
 | 
						|
 - Licensed under the GNU GPL version 3 or higher.
 | 
						|
 -}
 | 
						|
 | 
						|
module Types.Backend where
 | 
						|
 | 
						|
import Types.Key
 | 
						|
import Types.KeySource
 | 
						|
 | 
						|
data BackendA a = Backend
 | 
						|
	{ backendVariety :: KeyVariety
 | 
						|
	, getKey :: KeySource -> a (Maybe Key) 
 | 
						|
	-- Verifies the content of a key.
 | 
						|
	, verifyKeyContent :: Maybe (Key -> FilePath -> a Bool)
 | 
						|
	-- Checks if a key can be upgraded to a better form.
 | 
						|
	, canUpgradeKey :: Maybe (Key -> Bool)
 | 
						|
	-- Checks if there is a fast way to migrate a key to a different
 | 
						|
	-- backend (ie, without re-hashing).
 | 
						|
	, fastMigrate :: Maybe (Key -> BackendA a -> AssociatedFile -> a (Maybe Key))
 | 
						|
	-- Checks if a key is known (or assumed) to always refer to the
 | 
						|
	-- same data.
 | 
						|
	, isStableKey :: Key -> Bool
 | 
						|
	}
 | 
						|
 | 
						|
instance Show (BackendA a) where
 | 
						|
	show backend = "Backend { name =\"" ++ formatKeyVariety (backendVariety backend) ++ "\" }"
 | 
						|
 | 
						|
instance Eq (BackendA a) where
 | 
						|
	a == b = backendVariety a == backendVariety b
 |