primo commit
This commit is contained in:
		
							
								
								
									
										62
									
								
								libraries/vendor/willdurand/negotiation/src/Negotiation/AcceptMatch.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								libraries/vendor/willdurand/negotiation/src/Negotiation/AcceptMatch.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,62 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Negotiation; | ||||
|  | ||||
| final class AcceptMatch | ||||
| { | ||||
|     /** | ||||
|      * @var float | ||||
|      */ | ||||
|     public $quality; | ||||
|  | ||||
|     /** | ||||
|      * @var int | ||||
|      */ | ||||
|     public $score; | ||||
|  | ||||
|     /** | ||||
|      * @var int | ||||
|      */ | ||||
|     public $index; | ||||
|  | ||||
|     public function __construct($quality, $score, $index) | ||||
|     { | ||||
|         $this->quality = $quality; | ||||
|         $this->score   = $score; | ||||
|         $this->index   = $index; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param AcceptMatch $a | ||||
|      * @param AcceptMatch $b | ||||
|      * | ||||
|      * @return int | ||||
|      */ | ||||
|     public static function compare(AcceptMatch $a, AcceptMatch $b) | ||||
|     { | ||||
|         if ($a->quality !== $b->quality) { | ||||
|             return $a->quality > $b->quality ? -1 : 1; | ||||
|         } | ||||
|  | ||||
|         if ($a->index !== $b->index) { | ||||
|             return $a->index > $b->index ? 1 : -1; | ||||
|         } | ||||
|  | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array   $carry reduced array | ||||
|      * @param AcceptMatch $match match to be reduced | ||||
|      * | ||||
|      * @return AcceptMatch[] | ||||
|      */ | ||||
|     public static function reduce(array $carry, AcceptMatch $match) | ||||
|     { | ||||
|         if (!isset($carry[$match->index]) || $carry[$match->index]->score < $match->score) { | ||||
|             $carry[$match->index] = $match; | ||||
|         } | ||||
|  | ||||
|         return $carry; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user