txt: ## precompilationrepository.md
  role CompUnit::PrecompilationRepository
  
  CompUnit::PrecompilationRepository
  
  This class provides stubs for each of the following methods. The methods are provided by sub-classes, such as `PrecompilationRepository::File`. Sub-classes are implementation dependent.
  
  # [Methods](#role_CompUnit::PrecompilationRepository "go to top of document")[§](#Methods "direct link")
  
  ## [method new-unit](#role_CompUnit::PrecompilationRepository "go to top of document")[§](#method_new-unit "direct link")
  
  ```raku
  method new-unit(| --> CompUnit::PrecompilationUnit:D)
  { ... }
  ```
  
  Prepare a new implementation specific PrecompilationUnit for storage
  
  ## [method load-unit](#role_CompUnit::PrecompilationRepository "go to top of document")[§](#method_load-unit "direct link")
  
  ```raku
  method load-unit(CompUnit::PrecompilationId $compiler-id,
              CompUnit::PrecompilationId $precomp-id)
  { ... }
  ```
  
  Load the precompilation identified by the pairing of the specified compiler and precompilation ID.
  
  ## [method load-repo-id](#role_CompUnit::PrecompilationRepository "go to top of document")[§](#method_load-repo-id "direct link")
  
  ```raku
  method load-repo-id(CompUnit::PrecompilationId $compiler-id,
              CompUnit::PrecompilationId $precomp-id)
  { ... }
  ```
  
  Return the repository id for which the specified precomp file's dependencies have been validated
  
  ## [method store-file](#role_CompUnit::PrecompilationRepository "go to top of document")[§](#method_store-file "direct link")
  
  ```raku
  method store-file(CompUnit::PrecompilationId $compiler-id,
               CompUnit::PrecompilationId $precomp-id,
               IO::Path:D $path,
               :$extension = '')
  { ... }
  ```
  
  Store the file at the specified path in the precompilation store, under the given compiler ID and precompilation ID.
  
  ## [method store-unit](#role_CompUnit::PrecompilationRepository "go to top of document")[§](#method_store-unit "direct link")
  
  ```raku
  method store-unit(CompUnit::PrecompilationId $compiler-id,
               CompUnit::PrecompilationId $precomp-id,
               CompUnit::PrecompilationUnit $unit)
  { ... }
  ```
  
  Store the given precompilation unit in the precompilation store under the given compiler ID and precompilation ID.
  
  ## [method store-repo-id](#role_CompUnit::PrecompilationRepository "go to top of document")[§](#method_store-repo-id "direct link")
  
  ```raku
  method store-repo-id(CompUnit::PrecompilationId $compiler-id,
               CompUnit::PrecompilationId $precomp-id,
               :$repo-id!)
  { ... }
  ```
  
  Store the given repo-id for a precompilation under the given compiler ID and precompilation ID.
  
  ## [method delete](#role_CompUnit::PrecompilationRepository "go to top of document")[§](#method_delete "direct link")
  
  ```raku
  method delete(CompUnit::PrecompilationId $compiler-id,
                CompUnit::PrecompilationId $precomp-id)
  { ... }
  ```
  
  Delete an individual precompilation.
  
  ## [method delete-by-compiler](#role_CompUnit::PrecompilationRepository "go to top of document")[§](#method_delete-by-compiler "direct link")
  
  ```raku
  method delete-by-compiler(CompUnit::PrecompilationId $compiler-id)
  { ... }
  ```
  
  Delete all precompilations for a particular compiler.
  