Filtering and queries
Use a collection filter to find matching sessions, windows, or panes. Use an exactly-one lookup when your next operation requires a single target.
-
Filtering returns a collection; exactly-one lookup checks the result count. A filter returns zero or more matches. An exactly-one operation returns one object or reports a missing or ambiguous match.
-
Choose where to filter. Filter a snapshot in your program when you need several queries over the same data. A tmux format filter can reduce the rows returned by a live read. The cost depends on the data and queries you need.
Typed and local filters¶
Typed field operations let the compiler reject incompatible comparisons:
Examples of typed and local filters:
IReadOnlyList<Window> windows = await session.GetWindowsAsync(ct);IEnumerable<Window> building = windows.Where( each => each.Name.StartsWith("build", StringComparison.Ordinal));
// A declarative query is a document, not just a lambda run in place.IReadOnlyList<Session> sessions = await server.GetSessionsAsync(ct);IReadOnlyList<Session> matched = sessions.Matching<Session>( session => session.Name.StartsWith("build", StringComparison.Ordinal));Result counts¶
Filtering and querying shows exactly-one lookups and their error handling. Do not index the first result until the operation has established that a match exists.