Skip to main content

uv_python_interpreter/
requested.rs

1use uv_python_types::PythonRequest;
2
3use crate::Interpreter;
4
5/// An interpreter together with the resolved request used to select it.
6///
7/// Retaining the request allows environment creation to respect constraints discovered in version
8/// files or project and script metadata.
9#[derive(Debug, Clone)]
10pub struct RequestedInterpreter {
11    interpreter: Interpreter,
12    request: PythonRequest,
13}
14
15impl RequestedInterpreter {
16    /// Retain the resolved request that selected an interpreter.
17    pub fn new(interpreter: Interpreter, request: PythonRequest) -> Self {
18        Self {
19            interpreter,
20            request,
21        }
22    }
23
24    /// Return the resolved request.
25    pub fn request(&self) -> &PythonRequest {
26        &self.request
27    }
28
29    /// Consume the requested interpreter, discarding its request.
30    pub fn into_interpreter(self) -> Interpreter {
31        self.interpreter
32    }
33}