mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-08-11 20:57:47 +02:00
Play Report Analyzer v4
You can now access the *entire* play report data in any given value formatter. The input types have been restructured and, notably, not every instance of Value has an ApplicationMetadata on it. It's now on the container type that also contains the matched values and the entire play report.
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
using MsgPack;
|
||||
using Ryujinx.Ava.Utilities.AppLibrary;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Ryujinx.Ava.Utilities.PlayReport
|
||||
{
|
||||
@@ -9,12 +11,12 @@ namespace Ryujinx.Ava.Utilities.PlayReport
|
||||
/// containing the currently running application's <see cref="ApplicationMetadata"/>,
|
||||
/// and the matched <see cref="MessagePackObject"/> from the Play Report.
|
||||
/// </summary>
|
||||
public class Value
|
||||
public readonly struct Value
|
||||
{
|
||||
/// <summary>
|
||||
/// The currently running application's <see cref="ApplicationMetadata"/>.
|
||||
/// </summary>
|
||||
public ApplicationMetadata Application { get; init; }
|
||||
public Value(MessagePackObject packedValue)
|
||||
{
|
||||
PackedValue = packedValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The matched value from the Play Report.
|
||||
@@ -37,6 +39,17 @@ namespace Ryujinx.Ava.Utilities.PlayReport
|
||||
: boxed.ToString();
|
||||
}
|
||||
|
||||
public static implicit operator Value(MessagePackObject matched) => new(matched);
|
||||
|
||||
public static Value[] ConvertPackedObjects(IEnumerable<MessagePackObject> packObjects)
|
||||
=> packObjects.Select(packObject => new Value(packObject)).ToArray();
|
||||
|
||||
public static Dictionary<string, Value> ConvertPackedObjectMap(Dictionary<string, MessagePackObject> packObjects)
|
||||
=> packObjects.ToDictionary(
|
||||
x => x.Key,
|
||||
x => new Value(x.Value)
|
||||
);
|
||||
|
||||
#region AsX accessors
|
||||
|
||||
public bool BooleanValue => PackedValue.AsBoolean();
|
||||
|
Reference in New Issue
Block a user