# SectionMonitorChainBuilder

    public struct SectionMonitorChainBuilder<O> : SectionMonitorBuilderType where O : DynamicObject

The fetch builder type used for a sectioned `ListMonitor`. A `SectionMonitorChainBuilder` is created from a `From` clause and then a `sectionBy(...)` chain.

    let monitor = transaction.monitorSectionedList(
        From<MyPersonEntity>()
            .sectionBy(\.age, { "\($0!) years old" })
            .where(\.age > 18)
            .orderBy(.ascending(\.age))
    )

### SectionMonitorBuilderType

- `from`

  #### Declaration

  Swift

      public var from: From<O>

- `sectionBy`

  #### Declaration

  Swift

      public var sectionBy: SectionBy<O>

- `fetchClauses`

  #### Declaration

  Swift

      public var fetchClauses: [FetchClause]

### SectionMonitorChainBuilder

- `where(_:)`

  Adds a `Where` clause to the `SectionMonitorChainBuilder`

  #### Declaration

  Swift

      public func `where`(_ clause: Where<O>) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `clause` | a `Where` clause to add to the fetch builder

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `Where` clause

- `where(combineByAnd:)`

  Creates a `FetchChainBuilder` that `AND`s the specified `Where` clauses. Use this overload if the compiler cannot infer the types when chaining multiple `&&` operators.

  #### Declaration

  Swift

      public func `where`(combineByAnd clauses: Where<O>...) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `clauses` | the `Where` clauses to create a `FetchChainBuilder` with

  #### Return Value

  a `FetchChainBuilder` that `AND`s the specified `Where` clauses

- `where(combineByOr:)`

  Creates a `FetchChainBuilder` that `OR`s the specified `Where` clauses. Use this overload if the compiler cannot infer the types when chaining multiple `||` operators.

  #### Declaration

  Swift

      public func `where`(combineByOr clauses: Where<O>...) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `clauses` | the `Where` clauses to create a `FetchChainBuilder` with

  #### Return Value

  a `FetchChainBuilder` that `OR`s the specified `Where` clauses

- `where(format:_:)`

  Adds a `Where` clause to the `SectionMonitorChainBuilder`

  #### Declaration

  Swift

      public func `where`(format: String, _ args: Any...) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `format` | the format string for the predicate
  `args` | the arguments for `format`

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `Where` clause

- `where(format:argumentArray:)`

  Adds a `Where` clause to the `SectionMonitorChainBuilder`

  #### Declaration

  Swift

      public func `where`(format: String, argumentArray: [Any]?) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `format` | the format string for the predicate
  `argumentArray` | the arguments for `format`

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `Where` clause

- `orderBy(_:)`

  Adds an `OrderBy` clause to the `SectionMonitorChainBuilder`

  #### Declaration

  Swift

      public func orderBy(_ clause: OrderBy<O>) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `clause` | the `OrderBy` clause to add

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `OrderBy` clause

- `orderBy(_:_:)`

  Adds an `OrderBy` clause to the `SectionMonitorChainBuilder`

  #### Declaration

  Swift

      public func orderBy(_ sortKey: OrderBy<O>.SortKey, _ sortKeys: OrderBy<O>.SortKey...) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `sortKey` | a single `SortKey`
  `sortKeys` | a series of other `SortKey`s

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `OrderBy` clause

- `orderBy(_:)`

  Adds an `OrderBy` clause to the `SectionMonitorChainBuilder`

  #### Declaration

  Swift

      public func orderBy(_ sortKeys: [OrderBy<O>.SortKey]) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `sortKeys` | a series of `SortKey`s

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `OrderBy` clause

- `tweak(_:)`

  Adds a `Tweak` clause to the `SectionMonitorChainBuilder` with a closure where the `NSFetchRequest` may be configured

  #### Declaration

  Swift

      public func tweak(_ fetchRequest: @escaping (NSFetchRequest<NSFetchRequestResult>) -> Void) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `fetchRequest` | the block to customize the `NSFetchRequest`

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `Tweak` clause

- `appending(_:)`

  Appends a `QueryClause` to the `SectionMonitorChainBuilder`

  #### Declaration

  Swift

      public func appending(_ clause: FetchClause) -> SectionMonitorChainBuilder<O>

  #### Parameters

  `clause` | the `QueryClause` to add to the `SectionMonitorChainBuilder`

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `QueryClause`

- `appending(contentsOf:)`

  Appends a series of `QueryClause`s to the `SectionMonitorChainBuilder`

  #### Declaration

  Swift

      public func appending<S>(contentsOf clauses: S) -> SectionMonitorChainBuilder<O> where S : Sequence, S.Element == FetchClause

  #### Parameters

  `clauses` | the `QueryClause`s to add to the `SectionMonitorChainBuilder`

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `QueryClause`s

### Available where `O`: `CoreStoreObject`

- `where(_:)`

  Adds a `Where` clause to the `SectionMonitorChainBuilder`

  #### Declaration

  Swift

      public func `where`<T>(_ clause: (O) -> T) -> SectionMonitorChainBuilder<O> where T : AnyWhereClause

  #### Parameters

  `clause` | a `Where` clause to add to the fetch builder

  #### Return Value

  a new `SectionMonitorChainBuilder` containing the `Where` clause