from __future__ import annotations

from dataclasses import dataclass

import msgspec


@dataclass(slots=True, kw_only=True)
class OsInfo:
    PLATFORM: str
    OS: str
    FILE_EXT: str
    INTERPRETER: str


class JsonMetadata(msgspec.Struct):
    version: int
    tag: str
    release_url: str
    asset_url_prefix: str


class RetrievalInfo(msgspec.Struct):
    url: str
    file: str
