-
Notifications
You must be signed in to change notification settings - Fork 661
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add generic stubs for MongoDB BSON classes
- Loading branch information
Showing
1 changed file
with
231 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,59 +1,251 @@ | ||
<?php | ||
|
||
namespace MongoDB\Driver; | ||
|
||
use Iterator; | ||
use Traversable; | ||
|
||
/** | ||
* @template-covariant TKey | ||
* @template-covariant TValue | ||
* | ||
* @template-extends Traversable<TKey, TValue> | ||
*/ | ||
interface CursorInterface extends Traversable | ||
namespace MongoDB\BSON | ||
{ | ||
/** | ||
* @return array<TValue> | ||
*/ | ||
public function toArray(); | ||
} | ||
use IteratorAggregate; | ||
use Serializable; | ||
|
||
/** | ||
* @template-covariant TValue of array|object | ||
* | ||
* @template-implements Iterator<int, TValue> | ||
* @template-implements CursorInterface<int, TValue> | ||
*/ | ||
final class Cursor implements CursorInterface, Iterator | ||
{ | ||
/** | ||
* @return TValue | ||
* @template TValue | ||
* @template-implements IteratorAggregate<string, TValue> | ||
*/ | ||
public function current() {} | ||
final class Document implements IteratorAggregate, Serializable | ||
{ | ||
private function __construct() | ||
{ | ||
} | ||
|
||
/** | ||
* @return void | ||
*/ | ||
public function next() {} | ||
final static public function fromBSON(string $bson): Document | ||
{ | ||
} | ||
|
||
final static public function fromJSON(string $json): Document | ||
{ | ||
} | ||
|
||
/** @param array|object $value */ | ||
final static public function fromPHP($value): Document | ||
{ | ||
} | ||
|
||
/** @return TValue */ | ||
final public function get(string $key) | ||
{ | ||
} | ||
|
||
/** @return Iterator<string, TValue> */ | ||
final public function getIterator(): Iterator | ||
{ | ||
} | ||
|
||
final public function has(string $key): bool | ||
{ | ||
} | ||
|
||
/** @return array|object */ | ||
final public function toPHP(?array $typeMap = null) | ||
{ | ||
} | ||
|
||
final public function toCanonicalExtendedJSON(): string | ||
{ | ||
} | ||
|
||
final public function toRelaxedExtendedJSON(): string | ||
{ | ||
} | ||
|
||
final public function __toString(): string | ||
{ | ||
} | ||
|
||
final public static function __set_state(array $properties): Document | ||
{ | ||
} | ||
|
||
final public function serialize(): string | ||
{ | ||
} | ||
|
||
/** @param string $serialized */ | ||
final public function unserialize($serialized): void | ||
{ | ||
} | ||
|
||
final public function __unserialize(array $data): void | ||
{ | ||
} | ||
|
||
final public function __serialize(): array | ||
{ | ||
} | ||
} | ||
|
||
/** | ||
* @return int | ||
* @psalm-template TKey of int|string | ||
* @psalm-template TValue | ||
* $psalm-implements \Iterator<TKey, TValue> | ||
*/ | ||
public function key() {} | ||
final class Iterator implements \Iterator | ||
{ | ||
final private function __construct() | ||
{ | ||
} | ||
|
||
/** @return TValue */ | ||
final public function current() | ||
{ | ||
} | ||
|
||
/** @return TKey */ | ||
final public function key() | ||
{ | ||
} | ||
|
||
final public function next(): void | ||
{ | ||
} | ||
|
||
final public function rewind(): void | ||
{ | ||
} | ||
|
||
final public function valid(): bool | ||
{ | ||
} | ||
|
||
final public function __wakeup(): void | ||
{ | ||
} | ||
} | ||
|
||
/** | ||
* @return bool | ||
* @template TValue | ||
* @template-implements IteratorAggregate<int, TValue> | ||
*/ | ||
public function valid() {} | ||
final class PackedArray implements IteratorAggregate, Serializable | ||
{ | ||
private function __construct() | ||
{ | ||
} | ||
|
||
final static public function fromPHP(array $value): PackedArray | ||
{ | ||
} | ||
|
||
/** @return TValue */ | ||
final public function get(int $index) | ||
{ | ||
} | ||
|
||
/** @return Iterator<int, TValue> */ | ||
final public function getIterator(): Iterator | ||
{ | ||
} | ||
|
||
final public function has(int $index): bool | ||
{ | ||
} | ||
|
||
/** @return array|object */ | ||
final public function toPHP(?array $typeMap = null) | ||
{ | ||
} | ||
|
||
final public function __toString(): string | ||
{ | ||
} | ||
|
||
final public static function __set_state(array $properties): PackedArray | ||
{ | ||
} | ||
|
||
final public function serialize(): string | ||
{ | ||
} | ||
|
||
/** @param string $serialized */ | ||
final public function unserialize($serialized): void | ||
{ | ||
} | ||
|
||
final public function __unserialize(array $data): void | ||
{ | ||
} | ||
|
||
final public function __serialize(): array | ||
{ | ||
} | ||
} | ||
} | ||
|
||
namespace MongoDB\Driver | ||
{ | ||
use Iterator; | ||
use Traversable; | ||
|
||
/** | ||
* @return void | ||
* @template-covariant TKey | ||
* @template-covariant TValue | ||
* | ||
* @template-extends Traversable<TKey, TValue> | ||
*/ | ||
public function rewind() {} | ||
interface CursorInterface extends Traversable | ||
{ | ||
/** | ||
* @return array<TValue> | ||
*/ | ||
public function toArray(); | ||
} | ||
|
||
/** | ||
* @return array<TValue> | ||
* @template-covariant TValue of array|object | ||
* | ||
* @template-implements Iterator<int, TValue> | ||
* @template-implements CursorInterface<int, TValue> | ||
*/ | ||
public function toArray() {} | ||
final class Cursor implements CursorInterface, Iterator | ||
{ | ||
/** | ||
* @return TValue | ||
*/ | ||
public function current() | ||
{ | ||
} | ||
|
||
/** | ||
* @return void | ||
*/ | ||
public function next() | ||
{ | ||
} | ||
|
||
/** | ||
* @return int | ||
*/ | ||
public function key() | ||
{ | ||
} | ||
|
||
/** | ||
* @return bool | ||
*/ | ||
public function valid() | ||
{ | ||
} | ||
|
||
/** | ||
* @return void | ||
*/ | ||
public function rewind() | ||
{ | ||
} | ||
|
||
/** | ||
* @return array<TValue> | ||
*/ | ||
public function toArray() | ||
{ | ||
} | ||
} | ||
} |