txt: ## preserving.md
  class Supplier::Preserving
  
  Cached live Supply factory
  
  ```raku
  class Supplier::Preserving is Supplier { }
  ```
  
  This is a factory for live [`Supply`](/type/Supply)-type objects, and it provides the mechanism for emitting new values onto the supplies, whereby values are kept when no consumer has tapped into the [`Supply`](/type/Supply). Any tapping will consume the already stored and future values.
  
  Starting a preserving [`Supply`](/type/Supply) and consuming its values after it is `done`:
  
  ```raku
  my $p = Supplier::Preserving.new;
  start for ^3 {
      $p.emit($_);
      LAST {
          say „done after { now - BEGIN now}s“;
          $p.done;
      }
  }
  sleep 2;
  react {
      whenever $p.Supply { $_.say; }
      whenever Promise.in(2) { done }
  }
  say „also done after { now - BEGIN now }s“
  ```
  
  Will output:
  
  ｢output｣ without highlighting
  
  ```
  
  
  ```
  
  done after 0.0638467s
  0
  1
  2
  also done after 4.0534119s
  
  
  ```
  
  
  ```
  
  # [Methods](#class_Supplier::Preserving "go to top of document")[§](#Methods "direct link")
  
  ## [method new](#class_Supplier::Preserving "go to top of document")[§](#method_new "direct link")
  
  ```raku
  method new()
  ```
  
  The [`Supplier`](/type/Supplier) constructor.
  