Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5967651
KVSourceRange.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
KVSourceRange.php
View Options
<?php
declare
(
strict_types
=
1
);
namespace
Wikimedia\Parsoid\Tokens
;
use
Wikimedia\Assert\Assert
;
use
Wikimedia\JsonCodec\JsonCodecable
;
use
Wikimedia\JsonCodec\JsonCodecableTrait
;
/**
* Represents a source offset range for a key-value pair.
*/
class
KVSourceRange
implements
JsonCodecable
{
use
JsonCodecableTrait
;
/**
* Source range for the key.
* @var SourceRange
*/
public
$key
;
/**
* Source range for the value.
* @var SourceRange
*/
public
$value
;
/**
* Create a new key-value source offset range.
* @param int $keyStart The start index of the key
* (unicode code points, inclusive)
* @param int $keyEnd The end index of the key
* (unicode code points, exclusive)
* @param int $valueStart The start index of the value
* (unicode code points, inclusive)
* @param int $valueEnd The end index of the value
* (unicode code points, exclusive)
*/
public
function
__construct
(
int
$keyStart
,
int
$keyEnd
,
int
$valueStart
,
int
$valueEnd
)
{
$this
->
key
=
new
SourceRange
(
$keyStart
,
$keyEnd
);
$this
->
value
=
new
SourceRange
(
$valueStart
,
$valueEnd
);
}
/**
* Return a new key-value source offset range shifted by $amount.
* @param int $amount The amount to shift by
* @return KVSourceRange
*/
public
function
offset
(
int
$amount
):
KVSourceRange
{
return
new
KVSourceRange
(
$this
->
key
->
start
+
$amount
,
$this
->
key
->
end
+
$amount
,
$this
->
value
->
start
+
$amount
,
$this
->
value
->
end
+
$amount
);
}
/**
* Create a new key-value source offset range from an array of
* integers (such as created during JSON serialization).
* @param int[] $so
* @return KVSourceRange
*/
public
static
function
newFromJsonArray
(
array
$so
):
KVSourceRange
{
Assert
::
invariant
(
count
(
$so
)
===
4
,
'Not enough elements in KVSourceRange array'
);
return
new
KVSourceRange
(
$so
[
0
],
$so
[
1
],
$so
[
2
],
$so
[
3
]
);
}
/**
* @inheritDoc
*/
public
function
toJsonArray
():
array
{
return
[
$this
->
key
->
start
,
$this
->
key
->
end
,
$this
->
value
->
start
,
$this
->
value
->
end
,
];
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Oct 3, 12:32 (3 d, 2 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
93/eb/5c97ed6d967d6dfb5a95361988a0
Default Alt Text
KVSourceRange.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment