devscout-rs 0.9.0

Fast code index for C# and TypeScript codebases -- map, find, refs, impact from the CLI.
use serde::{Deserialize, Serialize};

// The fragment-cache shape of a written call argument's static type. Kept
// beside `fragment_types` rather than inside it, which is at the flat
// file-size limit.

/// The argument's known descriptor, or a member type to read using the
/// declaring file's context after all fragments have been indexed.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FragArgType {
    /// A type descriptor known before resolution.
    Known(String),
    /// A member whose declared type will be read from the declaration index.
    Member {
        /// The receiver type name.
        owner: String,
        /// The member name.
        member: String,
        #[serde(
            default,
            rename = "receiverArgs",
            skip_serializing_if = "Option::is_none"
        )]
        /// Explicit type arguments on the receiver, when available.
        receiver_args: Option<Vec<String>>,
        /// Whether the member is invoked as a method.
        call: bool,
    },
}