gi-gio-2.0.38: Gio bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | None
Language | Haskell2010

GI.Gio.Structs.FileAttributeMatcher

Contents

- Exported types
- Methods
  - enumerateNamespace
  - enumerateNext
  - matches
  - matchesOnly
  - new
  - ref
  - subtract
  - toString
  - unref

Description

Determines if a string matches a file attribute.

Synopsis

- newtype FileAttributeMatcher = FileAttributeMatcher (ManagedPtr FileAttributeMatcher)
- fileAttributeMatcherEnumerateNamespace :: (HasCallStack, MonadIO m) => FileAttributeMatcher -> Text -> m Bool
- fileAttributeMatcherEnumerateNext :: (HasCallStack, MonadIO m) => FileAttributeMatcher -> m (Maybe Text)
- fileAttributeMatcherMatches :: (HasCallStack, MonadIO m) => FileAttributeMatcher -> Text -> m Bool
- fileAttributeMatcherMatchesOnly :: (HasCallStack, MonadIO m) => FileAttributeMatcher -> Text -> m Bool
- fileAttributeMatcherNew :: (HasCallStack, MonadIO m) => Text -> m FileAttributeMatcher
- fileAttributeMatcherRef :: (HasCallStack, MonadIO m) => FileAttributeMatcher -> m FileAttributeMatcher
- fileAttributeMatcherSubtract :: (HasCallStack, MonadIO m) => Maybe FileAttributeMatcher -> Maybe FileAttributeMatcher -> m (Maybe FileAttributeMatcher)
- fileAttributeMatcherToString :: (HasCallStack, MonadIO m) => Maybe FileAttributeMatcher -> m Text
- fileAttributeMatcherUnref :: (HasCallStack, MonadIO m) => FileAttributeMatcher -> m ()

# Exported types

newtype FileAttributeMatcher Source #

Memory-managed wrapper type.

Constructors

FileAttributeMatcher (ManagedPtr FileAttributeMatcher) |

#### Instances

Instances details

Eq FileAttributeMatcher Source # |
Instance details Defined in GI.Gio.Structs.FileAttributeMatcher Methods (==) :: FileAttributeMatcher -> FileAttributeMatcher -> Bool Source # (/=) :: FileAttributeMatcher -> FileAttributeMatcher -> Bool Source #
GBoxed FileAttributeMatcher Source # |
Instance details Defined in GI.Gio.Structs.FileAttributeMatcher
ManagedPtrNewtype FileAttributeMatcher Source # |
Instance details Defined in GI.Gio.Structs.FileAttributeMatcher Methods toManagedPtr :: FileAttributeMatcher -> ManagedPtr FileAttributeMatcher Source #
TypedObject FileAttributeMatcher Source # |
Instance details Defined in GI.Gio.Structs.FileAttributeMatcher Methods glibType :: IO GType Source #
HasParentTypes FileAttributeMatcher Source # |
Instance details Defined in GI.Gio.Structs.FileAttributeMatcher
IsGValue (Maybe FileAttributeMatcher) Source # | Convert `FileAttributeMatcher` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.Gio.Structs.FileAttributeMatcher Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe FileAttributeMatcher -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe FileAttributeMatcher) Source #
type ParentTypes FileAttributeMatcher Source # |
Instance details Defined in GI.Gio.Structs.FileAttributeMatcher type ParentTypes FileAttributeMatcher = '[] :: [Type]

# Methods

### Click to display all available methods, including inherited ones

Expand

#### Methods

enumerateNamespace, enumerateNext, matches, matchesOnly, ref, subtract, toString, unref.

#### Getters

None.

#### Setters

None.

## enumerateNamespace

fileAttributeMatcherEnumerateNamespace Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> FileAttributeMatcher | `matcher`: a `FileAttributeMatcher`.
-> Text | `ns`: a string containing a file attribute namespace.
-> m Bool | Returns: `True` if the matcher matches all of the entries in the given `ns`, `False` otherwise.

Checks if the matcher will match all of the keys in a given namespace. This will always return `True` if a wildcard character is in use (e.g. if matcher was created with "standard::*" and `ns` is "standard", or if matcher was created using "*" and namespace is anything.)

TODO: this is awkwardly worded.

## enumerateNext

fileAttributeMatcherEnumerateNext Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> FileAttributeMatcher | `matcher`: a `FileAttributeMatcher`.
-> m (Maybe Text) | Returns: a string containing the next attribute or, `Nothing` if no more attribute exist.

Gets the next matched attribute from a `FileAttributeMatcher`.

## matches

fileAttributeMatcherMatches Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> FileAttributeMatcher | `matcher`: a `FileAttributeMatcher`.
-> Text | `attribute`: a file attribute key.
-> m Bool | Returns: `True` if `attribute` matches `matcher`. `False` otherwise.

Checks if an attribute will be matched by an attribute matcher. If the matcher was created with the "*" matching string, this function will always return `True`.

## matchesOnly

fileAttributeMatcherMatchesOnly Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> FileAttributeMatcher | `matcher`: a `FileAttributeMatcher`.
-> Text | `attribute`: a file attribute key.
-> m Bool | Returns: `True` if the matcher only matches `attribute`. `False` otherwise.

Checks if an attribute matcher only matches a given attribute. Always returns `False` if "*" was used when creating the matcher.

## new

fileAttributeMatcherNew Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Text | `attributes`: an attribute string to match.
-> m FileAttributeMatcher | Returns: a `FileAttributeMatcher`

Creates a new file attribute matcher, which matches attributes against a given string. `GFileAttributeMatchers` are reference counted structures, and are created with a reference count of 1. If the number of references falls to 0, the `FileAttributeMatcher` is automatically destroyed.

The `attributes` string should be formatted with specific keys separated from namespaces with a double colon. Several "namespacekey" strings may be concatenated with a single comma (e.g. "standardtype,standardisHidden"). The wildcard "*" may be used to match all keys and namespaces, or "namespace::*" will match all keys in a given namespace.

## Examples of file attribute matcher strings and results

- `"*"`: matches all attributes.
- `"standard::is-hidden"`: matches only the key is-hidden in the standard namespace.
- `"standard::type,unix::*"`: matches the type key in the standard namespace and all keys in the unix namespace.

## ref

fileAttributeMatcherRef Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> FileAttributeMatcher | `matcher`: a `FileAttributeMatcher`.
-> m FileAttributeMatcher | Returns: a `FileAttributeMatcher`.

References a file attribute matcher.

## subtract

fileAttributeMatcherSubtract Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Maybe FileAttributeMatcher | `matcher`: Matcher to subtract from
-> Maybe FileAttributeMatcher | `subtract`: The matcher to subtract
-> m (Maybe FileAttributeMatcher) | Returns: A file attribute matcher matching all attributes of `matcher` that are not matched by `subtract`

Subtracts all attributes of `subtract` from `matcher` and returns a matcher that supports those attributes.

Note that currently it is not possible to remove a single attribute when the `matcher` matches the whole namespace - or remove a namespace or attribute when the matcher matches everything. This is a limitation of the current implementation, but may be fixed in the future.

## toString

fileAttributeMatcherToString Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Maybe FileAttributeMatcher | `matcher`: a `FileAttributeMatcher`.
-> m Text | Returns: a string describing the attributes the matcher matches against or `Nothing` if `matcher` was `Nothing`.

Prints what the matcher is matching against. The format will be equal to the format passed to `fileAttributeMatcherNew`. The output however, might not be identical, as the matcher may decide to use a different order or omit needless parts.

Since: 2.32

## unref

fileAttributeMatcherUnref Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> FileAttributeMatcher | `matcher`: a `FileAttributeMatcher`.
-> m () |

Unreferences `matcher`. If the reference count falls below 1, the `matcher` is automatically freed.