Машиночитаемый вывод.
Cargo может выдавать информацию о вашей сборке и вашем проекте в формате JSON. Cargo can output information about project and build in JSON format.
Информация о структуре проекта
Вы можете использовать команду cargo metadata
чтобы получить информацию о структуре проекта
и зависимостях. Вывод данной команды будет примерно таким:
{
// Версия формата сообщений .
"version": integer,
// Список пакетов для проекта, включая зависимости.
"packages": [
{
// Уникальный идентификатор пакета.
"id": PackageId,
"name": string,
"version": string,
"source": SourceId,
// Список объявленных зависимостей. Используемые зависимости описаны в пол `resolve`.
"dependencies": [ Dependency ],
"targets: [ Target ],
// Путь до Cargo.toml
"manifest_path": string,
}
],
"workspace_members": [ PackageId ],
// Граф зависимостей.
"resolve": {
"nodes": [
{
"id": PackageId,
"dependencies": [ PackageId ]
}
]
}
}
Ошибки компилятора
Если вы добавите параметр --message-format json
для команд типа cargo build
, Cargo
выдаст ошибки и предупреждения компилятора в формате JSON. Сообщения будут выведены в
стандартный поток вывода. Каждое сообщение занимает ровно одну строчку и не содержит в себе
символа перевода строки \n
. Благодаря этому их можно обрабатывать не дожидаясь окончания сборки.
Формат сообщений выглядит примерно так:
{
// Тип сообщения.
"reason": "compiler-message",
// Уникальный идентификатор компилируемого пакета.
"package_id": PackageId,
// Уникальный идентификатор для типа сборки (например, bin)
"target": Target,
// Сообщение от компилятора в формате JSON.
"message": {...}
}
Спецификация пакетов и типов сборки такая же как и у cargo metadata
.