class RbSys::Cargo::Metadata
def cargo_metadata
def cargo_metadata return @cargo_metadata if @cargo_metadata ::Gem.load_yaml cargo = ENV["CARGO"] || "cargo" args = ["metadata", "--format-version", "1"] args << "--no-deps" unless @deps out, stderr, status = Open3.capture3(cargo, *args) raise "exited with non-zero status (#{status})" unless status.success? data = Gem::SafeYAML.safe_load(out) raise "metadata must be a Hash" unless data.is_a?(Hash) @cargo_metadata = data rescue => err raise CargoMetadataError.new(err, stderr) end