Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
The Item
structure stores information about a segment of text.
Synopsis
- newtype Item = Item (ManagedPtr Item)
- newZeroItem :: MonadIO m => m Item
- noItem :: Maybe Item
- itemCopy :: (HasCallStack, MonadIO m) => Item -> m (Maybe Item)
- itemFree :: (HasCallStack, MonadIO m) => Item -> m ()
- itemNew :: (HasCallStack, MonadIO m) => m Item
- itemSplit :: (HasCallStack, MonadIO m) => Item -> Int32 -> Int32 -> m Item
- getItemAnalysis :: MonadIO m => Item -> m Analysis
- getItemLength :: MonadIO m => Item -> m Int32
- setItemLength :: MonadIO m => Item -> Int32 -> m ()
- getItemNumChars :: MonadIO m => Item -> m Int32
- setItemNumChars :: MonadIO m => Item -> Int32 -> m ()
- getItemOffset :: MonadIO m => Item -> m Int32
- setItemOffset :: MonadIO m => Item -> Int32 -> m ()
Exported types
Memory-managed wrapper type.
Methods
Overloaded methods
copy
:: (HasCallStack, MonadIO m) | |
=> Item | |
-> m (Maybe Item) | Returns: the newly allocated |
Copy an existing Item
structure.
free
:: (HasCallStack, MonadIO m) | |
=> Item | |
-> m () |
Free a Item
and all associated memory.
new
:: (HasCallStack, MonadIO m) | |
=> m Item | Returns: the newly allocated |
Creates a new Item
structure initialized to default values.
split
:: (HasCallStack, MonadIO m) | |
=> Item |
|
-> Int32 |
|
-> Int32 |
|
-> m Item | Returns: new item representing text before |
Modifies orig
to cover only the text after splitIndex
, and
returns a new item that covers the text before splitIndex
that
used to be in orig
. You can think of splitIndex
as the length of
the returned item. splitIndex
may not be 0, and it may not be
greater than or equal to the length of orig
(that is, there must
be at least one byte assigned to each item, you can't create a
zero-length item). splitOffset
is the length of the first item in
chars, and must be provided because the text used to generate the
item isn't available, so itemSplit
can't count the char
length of the split items itself.
Properties
analysis
analysis results for the item.
getItemAnalysis :: MonadIO m => Item -> m Analysis Source #
Get the value of the “analysis
” field.
When overloading is enabled, this is equivalent to
get
item #analysis
length
length of this item in bytes.
getItemLength :: MonadIO m => Item -> m Int32 Source #
Get the value of the “length
” field.
When overloading is enabled, this is equivalent to
get
item #length
setItemLength :: MonadIO m => Item -> Int32 -> m () Source #
Set the value of the “length
” field.
When overloading is enabled, this is equivalent to
set
item [ #length:=
value ]
numChars
number of Unicode characters in the item.
getItemNumChars :: MonadIO m => Item -> m Int32 Source #
Get the value of the “num_chars
” field.
When overloading is enabled, this is equivalent to
get
item #numChars
setItemNumChars :: MonadIO m => Item -> Int32 -> m () Source #
Set the value of the “num_chars
” field.
When overloading is enabled, this is equivalent to
set
item [ #numChars:=
value ]
offset
byte offset of the start of this item in text.
getItemOffset :: MonadIO m => Item -> m Int32 Source #
Get the value of the “offset
” field.
When overloading is enabled, this is equivalent to
get
item #offset
setItemOffset :: MonadIO m => Item -> Int32 -> m () Source #
Set the value of the “offset
” field.
When overloading is enabled, this is equivalent to
set
item [ #offset:=
value ]